getDeclaredFields()返回Class中所有的字段,包括私有字段,而getFields()只返回公有字段,即有public修饰的字段。
package com.shen.test.dto;
import java.lang.reflect.Field;
/**
* <b>Description</b> 订单领域对象 <BR>
*
* @author shenhaiwen
*
* @since 2017年7月18日下午2:27:58
*/
public class OrderDto {
private String orderId;
private String userId;
private String amt;
protected String mark;
public String desc;
String address;
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getAmt() {
return amt;
}
public void setAmt(String amt) {
this.amt = amt;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public static void main(String[] args) {
System.out.println("=====begin run getDeclaredFields=====");
Field[] declaredFields = OrderDto.class.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field field = declaredFields[i];
System.out.println(field);
}
System.out.println("=====end run getDeclaredFields=====");
System.out.println("=====begin run getFields=====");
Field[] fields = OrderDto.class.getFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
System.out.println(field);
}
System.out.println("=====end run getFields=====");
}
}
打印输出结果如下: