不确定我是否可以这样做,但是,我说我有这个对象:
public class SomeObject
{
private String field1;
private String field2;
....
//Blah Blah getters and setters for all fields
}
Run Code Online (Sandbox Code Playgroud)
我想知道这些字段中有多少是非空的.我的特定对象有40个字段,所以我真的不想让if块分别检查40个字段中的每个字段.我以为我能以某种方式用反射做到这一点?但真的不知道我在做什么.只需遍历所有字段并检查其值即可.
对于那里的人来说,我觉得这不是一件容易的事.
是的,你可以用反射做到这一点:
SomeObject objectReference = ...; // The object you're interested in
Class clazz = SomeObject.class;
int nullCount = 0;
for (Field field : clazz.getDeclaredFields())
{
field.setAccessible(true);
if (field.get(objectReference) == null)
{
nullCount++;
}
}
Run Code Online (Sandbox Code Playgroud)
(除了各种例外,权限等)
这感觉有点像黑客...说实话,这是一个有点奇怪的要求.你肯定需要所有40个字段,你是否需要将它们作为单独的字段而不是(比如说)数组?
归档时间: |
|
查看次数: |
734 次 |
最近记录: |