java中如何通过反射获取类的属性
4个回答
展开全部
简单的方法如下:
Class<?> cls=Class.forName(className);////////////////////////通过类的名称反射类
Object obj=cls.newInstance();//////////////////////对象实例化
Field field=cls.getField(fieldName);/////这个对应的是属性
fieldValue=field.get(obj);////这个就是属性的值
Class<?> cls=Class.forName(className);////////////////////////通过类的名称反射类
Object obj=cls.newInstance();//////////////////////对象实例化
Field field=cls.getField(fieldName);/////这个对应的是属性
fieldValue=field.get(obj);////这个就是属性的值
展开全部
//得到该类的属性集合 model为对象
Field[] fields=model.getClass().getDeclaredFields();
//遍历
for(Field field:fields){
field.setAccessible(true);
//获取一个属性
String name = field.getName();
//获取该属性的值,可能为空
Object value = field.get(am);
}
Field[] fields=model.getClass().getDeclaredFields();
//遍历
for(Field field:fields){
field.setAccessible(true);
//获取一个属性
String name = field.getName();
//获取该属性的值,可能为空
Object value = field.get(am);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.lang.reflect.Field;
public class Test {
public String p;
public static void main(String[] args) {
try {
Class a=Class.forName("Test");
Field f=a.getField("p");
Test s=new Test();
f.set(s, "2323");
System.out.println(s.p);// 调用属性
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
public class Test {
public String p;
public static void main(String[] args) {
try {
Class a=Class.forName("Test");
Field f=a.getField("p");
Test s=new Test();
f.set(s, "2323");
System.out.println(s.p);// 调用属性
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public Field[] getFields();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询