从 Java 中的一个类获取所有已声明的字段


java.lang.Class.getDeclaredFields() 方法返回一个字段对象的数组。这些字段对象包括具有公共、私有、受保护和默认访问权限的对象,但不包括继承字段。

此外,如果类或接口没有声明字段或在 Class 对象中表示基本类型、数组类或 void,则 getDeclaredFields() 方法返回一个零长度数组。

以下是一个展示此功能的程序 −

示例

 在线演示

package Test;
import java.lang.reflect.*;
public class Demo {
   int i;
   char c;
   public Demo(int i, char c) {
      this.i = i;
      this.c = c;
   }
   public static void main(String[] args) {
     try {
         Demo obj = new Demo(7, 'A');
         Class c = obj.getClass();
         Field[] fields = c.getDeclaredFields();
         for(int i = 0; i < fields.length; i++) {
           System.out.println("The field is: " + fields[i].toString());
         }
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

输出

The field is: int Test.Demo.i
The field is: char Test.Demo.c

现在让我们了解以上程序。

在 main() 方法中创建了 Demo 类的对象。然后,数组 fields[] 存储使用 getDeclaredFields() 方法获取到的字段对象。然后使用一个 for 循环显示字段。展示此功能的一个代码片段如下 −

Demo obj = new Demo(7, 'A');
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
for(int i = 0; i < fields.length; i++) {
   System.out.println("The field is: " + fields[i].toString());
}

更新于: 25-Jun-2020

3K+ 浏览

启动你的事业

完成课程,获得认证

开始
广告