加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何确定在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个字段,你是否需要将它们作为单独的字段而不是(比如说)数组?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读