如何确定在Java中对象上设置的字段数
发布时间:2020-12-15 08:44:36 所属栏目:Java 来源:网络整理
导读:不确定我是否可以这样做,但是,我说我有这个对象: public class SomeObject{ private String field1; private String field2; .... //Blah Blah getters and setters for all fields} 我想知道这些字段中有多少是非空的.我的特定对象有40个字段,所以我真的不
不确定我是否可以这样做,但是,我说我有这个对象:
public class SomeObject { private String field1; private String field2; .... //Blah Blah getters and setters for all fields } 我想知道这些字段中有多少是非空的.我的特定对象有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++; } } (除了各种例外,权限等) 这感觉有点像黑客…说实话,这是一个有点奇怪的要求.你肯定需要所有40个字段,你是否需要将它们作为单独的字段而不是(比如说)数组? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |