java的反射机制--关于类中属性的反射。

          之前对于反射的理解只是认为,通过一个类的名字动态创建出一个类来。

 


其实,知道类中属性的名字也可以,动态的得到该属性。

 

 

 

比如

 

class A{


   S = “abc”;


}

 

我们可以动态加载S

 

A

package com.sxzlc.test.refelect; public class A { String S = "abc"; String R = "www"; }

 

B

package com.sxzlc.test.refelect; import java.lang.reflect.Field; public class B { String s2 = m("S"); public String m(String param) { try { Field field = A.class.getDeclaredField(param); field.setAccessible(true); System.out.println(field.getName()); //输出abc System.out.println(field.get(new A())); return ""; } catch (Exception e) { throw new RuntimeException(e); } } }

 

TestMain

package com.sxzlc.test.refelect; public class TestMain { /** * @param args */ public static void main(String[] args) { B b = new B(); } }

 

 

 

扩展:(思想)

 

更好的思想是提供get方法 ,对get方法进行反射,因为有时属性的方法可能是私有的。

 

 

参考:http://topic.csdn.net/u/20110426/21/d7706d52-c267-4bd3-bf3a-c3e8094c25bc.html?seed=51821956&r=73020870#r_73020870

你可能感兴趣的:(java的反射机制--关于类中属性的反射。)