package cn.xs.Reflect; import java.lang.reflect.Field; import java.lang.reflect.Modifier; /** * 通过反射得到类的属性 * Java中定义了一个field类来表示属性 Method类 */ public class ReflectTest03 { public static void main(String[] args) throws Exception { //得到类 Class cla = Class.forName("cn.xs.Reflect.student");//传得是要获取类得全名 //获取属性 // Field[] field = cla.getFields();//获取得是public修饰得属性 // for (Field f :field) { // System.out.println(f); // } //获取所有得属性 Field[] fields = cla.getDeclaredFields(); for (Field f:fields) { //得到修饰符 int i = f.getModifiers(); //每个数字代表一种返回值类型 System.out.print(Modifier.toString(i)+" "); //类型 Class type = f.getType(); System.out.print(type.getName()+" "); System.out.println(f.getName()); } //获取单独得属性 Field field = cla.getDeclaredField("name"); System.out.println(field); //给属性赋值 //1.先来个对象 Object obj = cla.newInstance(); //2.赋值 field.set(obj,"张三"); System.out.println(field.get(obj)); Field field1 = cla.getDeclaredField("idNum"); field1.setAccessible(true);//打破封装,导致属性不安全 } }
通过反射得到属性
猜你喜欢
转载自blog.csdn.net/gadxiong/article/details/80305350
今日推荐
周排行