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);//打破封装,导致属性不安全
}
}
通过反射得到属性
最新推荐文章于 2024-12-16 22:51:58 发布