获取 Java 中所有已声明字段的列表


使用 java.lang.Class.getDeclaredFields() 方法可获取所有已声明字段的列表,因为它会返回字段对象数组。这些字段对象包括具有 public、private、protected 和 default 访问权限的对象,但不包括继承来的字段。

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

下面给出了演示此方法的程序 −

示例

 在线演示

import java.lang.reflect.*;
public class Demo {
   public static void main(String[] argv) throws Exception {
      Class c = java.lang.String.class;
      Field[] fields = c.getDeclaredFields();
      for(int i = 0; i < fields.length; i++) {
         System.out.println("The Field is: " + fields[i].toString());
      }
   }
}

输出

The Field is: private final char[] java.lang.String.value The Field is: private int java.lang.String.hash The Field is: private static final long java.lang.String.serialVersionUID The Field is: private static final java.io.ObjectStreamField[] java.lang.String.serialPersistentFields The Field is: public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER

现在,让我们了解一下上面的程序。

类 c 包含 java.lang.String.class。然后,数组 fields[] 使用方法 getDeclaredFields() 存储从该类获得的字段对象。然后使用 for 循环显示该字段。下面是一个演示此方法的代码片段 −

Class c = java.lang.String.class;
Field[] fields = c.getDeclaredFields();
for(int i = 0; i < fields.length; i++) {
   System.out.println("The Field is: " + fields[i].toString());
}

更新日期: 25-Jun-2020

7 千次浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告