反射获取属性

来源:互联网 发布:jquery数据交互 编辑:程序博客网 时间:2024/06/03 20:16

Class c = 类名.class;

Field f = c.getDeclaredField("属性名");


成员变量

f.get(对象实例);

static变量

f.get(null);


/* * 通过反射获取一个对象的属性值,切记是对象,没有对象哪有成员变量值,除非是static的属性 *  *  * */package day8yue6;import java.lang.reflect.Field;public class GetField {public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {Class a = A.class;//获取这个类的所有属性Field[] f = a.getDeclaredFields();for (Field fa : f) {try {//fa.get(new A())获得是Object类型,如果想正常使用要转换成各自类型//public Object get(Object obj)  研究源码一清二楚//获取对象成员,当然要有实实在在的对象new A()啦,获取静态的就不需要了System.out.println(fa.get(new A()));} catch (Exception e) {e.printStackTrace();}}//获取静态属性,静态属性属于类,不需要先创建对象作为参数Field f1  = a.getDeclaredField("name");System.out.println(f1.get(null));}}class A{   public int age = 30;   public static String name = "static";}