天天看點

java Class getDeclaredFields() 與getFields()的差別

getdeclaredfields()傳回class中所有的字段,包括私有字段。例證:

java Class getDeclaredFields() 與getFields()的差別

package com.test.bean;  

import java.sql.timestamp;  

public class person2 {  

    private int id;  

    private int age;  

    private string personname;  

    private timestamp birthdate;  

    public string identitify;  

    protected string address;  

    string phone;  

}  

@test  

    public void test_getdeclaredfields() {  

        field[]fields=person2.class.getdeclaredfields();  

        for (int i = 0; i < fields.length; i++) {  

            field field = fields[i];  

            system.out.println(field.getname());  

        }  

    }  

 運作結果:

id

age

personname

birthdate

identitify

address

phone

getfields  隻傳回公共字段,即有public修飾的字段。例證:

java Class getDeclaredFields() 與getFields()的差別

        field[]fields=person2.class.getfields();  

 運作結果如下:

總結:

(1)getdeclaredfields()傳回class中所有的字段,包括私有字段;

(2)getfields  隻傳回公共字段,即有public修飾的字段