this.getClass().getFields().length;始终返回 0

2022-09-03 17:53:05

我正在尝试获取特定类中的字段数。但是,我使用的技术不起作用,并且始终返回0:

this.getClass().getFields().length;

如何获取特定类的字段计数?


答案 1

使用 该方法适用于可访问的公共字段 - 请参阅文档this.getClass().getDeclaredFields().lengthgetFields


答案 2

来自 Class#getFields JavaDoc:

返回一个数组,该数组包含 Field 对象,该对象反映由此类对象表示的类或接口的所有可访问公共字段

也许你的字段被声明为 或 ,因此在你的类中永远不会获得正确数量的字段。你应该使用Class#getDeclaredFieldsprivateprotected

返回一个 Field 对象数组,该数组反映由此类对象所表示的类或接口声明的所有字段。这包括公共、受保护、默认(包)访问和私有字段,但不包括继承字段。


推荐