獲取 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 千次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.