首页 > 代码库 > java反射

java反射

用反射模拟类的get和set方法

public static void main(String[] args) throws Exception {
Class clazz = Class.forName("fieldsTest.Students");//这里的类名是全名。。有包的话要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//写数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, "xiaoming");//因为知道是String类型的属性,所以传个String过去就是了。。实际情况中需要判断下他的参数类型
}
//读数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//获得读方法
String num = (String) rM.invoke(obj);//因为知道是String类型的属性,所以转换成String就是了。。也可以不转换直接打印
System.out.println(num);
}
}

java反射