從 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());
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP