对于一个自定义的pojo User代码如下
public class User {
private String userName;        public User(String userName) {
this.userName = userName;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
}
}User user = new User("wanghaisheng");怎样通过迭代输出它的属性名=值对呢?
如打印出:userName="wanghaisheng"
假设该POJO的属性名对外界是透明的,亦或者该POJO有百个以上的属性,怎样获得该pojo实例的名值对呢?

解决方案 »

  1.   

    简单的形如这样: import java.lang.reflect.Field;public class User {

    private String userName; public User(String userName) {
    this.userName = userName;
    } public String getUserName() {
    return userName;
    }
    public void setUserName(String userName) {
    this.userName = userName;
    }

    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException{
    User user = new User("wanghaisheng");
    Field[] fields = User.class.getDeclaredFields();
    for(Field f : fields){
    System.out.println(f.getName()+"=\""+f.get(user)+"\"");
    }
    }

    }