从 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()); }
广告