Class类中getDeclaredFields() 与getFields()的区别

来源:互联网 发布:mac pdf编辑 编辑:程序博客网 时间:2024/06/05 05:27

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=====");    }}

打印输出结果如下:

这里写图片描述

阅读全文
0 0