Java Class 类 getDeclaredFields()方法及示例

Class类getDeclaredFields()方法

  • getDeclaredFields()方法在java.lang包中可用。

  • getDeclaredFields()方法用于返回一个Field对象数组,该数组指示所有Field(即,它是私有,公共,受保护还是默认),但不包括继承的字段。

  • getDeclaredFields()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • 返回Field对象数组时,getDeclaredFields()方法可能会引发异常。
    SecurityException:在此异常中,当安全管理器存在时,它可能会引发。

语法:

    public Field[] getDeclaredFields();

参数:

  • 它不接受任何参数。

返回值:

此方法的返回类型为Field [],它返回一个Field对象数组,该数组表示该类的所有已声明字段(不包括继承的Fields)。

注意:

  • 当类或接口不包含字段时,将返回0。

  • 当此类对象包含基本类型,数组类或void类型时,将返回0。

示例

//Java程序演示示例 
//of Field []getDeclaredFields()类的方法 

import java.lang.reflect.*;

public class GetDeclaredFieldsOfClass {
    public static void main(String[] args) throws Exception {
        GetDeclaredFieldsOfClass declare_field = new GetDeclaredFieldsOfClass();

        //获取类
        Class cl = declare_field.getClass();

        //的Field对象数组
        //代表的任何字段(私有,公共,受保护等) 
        //排除继承字段的类 
        Field[] f = cl.getDeclaredFields();

        for (int i = 0; i < f.length; ++i)
            System.out.println("Declared Fields: " + f[i].toString());
    }

    //私有构造函数
    private GetDeclaredFieldsOfClass() {
        System.out.println("We are in private constructor");
    }

    //公共构造函数
    public GetDeclaredFieldsOfClass(int i, short s) {
        this.i = i;
        this.s = s;
    }

    private int i = 100;
    public short s = 200;
}

输出结果

We are in private constructor
Declared Fields: private int GetDeclaredFieldsOfClass.i
Declared Fields: public short GetDeclaredFieldsOfClass.s