您的位置:首页 > 编程语言 > Java开发

使用java反射机制获取javabean中的私有属性

2011-06-20 16:43 387 查看
public class TestReflect {
public static void main(String[] args){
APerson a=new APerson();
Field fields[] = a.getClass().getDeclaredFields();
String[] name = new String[fields.length];
Object[] value = new Object[fields.length];

try{
Field.setAccessible(fields, true);
for (int i = 0; i < name.length; i++) {
name[i] = fields[i].getName();
System.out.println(name[i] + "-> ");
value[i] = fields[i].get(a);
System.out.println(value[i]);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}

class APerson{
private String name;
private String sex;
private int age;

APerson(){
name= "John ";
sex= "男 ";
age=45;
}

public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}

以上代码中,Field.setAccessible(fields, true); 是最为关键的一点。

在使用java反射机制获取 JavaBean 的属性值时,如果该属性被声明为private 的,需要将setAccessible设置为true. 默认的值为false.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: