英文:
How to check for any null field of Object in List<Object>?
问题
我有一个对象列表传递给方法如下。
```java
Student s = new Student (name,age,branch, year); // 学生原型
public void log(List<Student> items) { }
在方法内部,我需要检查每个学生对象中是否有任何null
值,并记录该特定属性的空值以及相应的学生对象。是否有其他方法来检查这个,而不是使用以下方式:
items.stream().anyMatch(item -> item.getAge() == null ? System.out.println());
在实际情况中,我的对象包含超过30个属性,如果其中任何属性为null,我想要记录该null属性及其对应的对象。
<details>
<summary>英文:</summary>
I have a list of Object passed to a method as below.
```java
Student s = new Student (name,age,branch, year); // student prototype
public void log(List<Student> items) { }
Inside the method, I need to check for any null
values in each student object and log that particular attribute which was null and the corresponding student object. Is there a way to check this other than using?:
items.stream().anyMatch(item -> item.getAge() == null ? System.out.println());
In actual scenario, my object contains more than 30 attributes and if any of the attribute is null, I want to log that null attributes and its corresponding object.
答案1
得分: 3
你需要逐个检查每个字段,如果想逐一检查它们并记录它们是否为空。
如果要迭代所有字段,你可以使用反射,但我会质疑这种用例的适用性。
请注意,像 int age
这样的原始数据类型不能为 null,所以你不需要检查它。另外,你对 anyMatch
的使用是不正确的,因为 System.out.println
不返回布尔值。
英文:
You're going to have to check each field individually if you want to check them one-by-one and log if they are null.
You could use reflection to iterate over all fields, but I would question the applicability of such a use-case.
Note that primtives like int age
cannot be null, so you wouldn't need to check for it. Plus, your usage of anyMatch
is incorrect as System.out.println
does not return a boolean
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论