读书人

java反照之访问成员变量

发布时间: 2012-10-06 17:34:01 作者: rapoo

java反射之访问成员变量

类:

public class Phone {       int size = 15;       public float price = 2111.2f;       protected boolean good = true;      // private String brand = "iphone";   }

?

调用:

import java.lang.reflect.Field;   public class Test {    public static void main(String[] args) throws Exception{           Phone p = new Phone();                   Class c = p.getClass();                  Field[] declaredFields = c.getDeclaredFields();        //获得所有成员变量           for(int i = 0; i < declaredFields.length; i++) {               //遍历所有成员变量               Field field = declaredFields[i];               //获取成员变量的名字               System.out.print("名称:" + field.getName()+"\t");                           //获取成员变量类型               Class fieldType = field.getType();               System.out.println("类型为:" + fieldType);                        //返回指定对象上词field表示的值            System.out.println("值为\t"+field.get(p));          }       }   }

?

结果:

名称:size类型为:int值为15名称:price类型为:float值为2111.2名称:good类型为:boolean值为true

?

注意:

?? 访问私有变量会抛出异常!

读书人网 >编程

热点推荐