我想检查对象的所有字段为空或不使用Java 8.尝试了不同的方法,因为在提到这里,但我想它使用Java 8的功能来完成.
例如:
class person{
String name;
Long id;
//getter & setter
}
Person person = new Person();
List<Person> personList = new ArrayList<>();
personList.add(person);
Run Code Online (Sandbox Code Playgroud)
我想只在id和name不为NULL时才添加person to list.因为,Person有超过10个字段,我不想空检查每个字段并添加到列表中.在这里,我从DB操作中设置ResultSet中的那些字段.
假设您在编译时知道所有字段,最好的解决方案是明确检查每个字段.对此任务使用反射会增加不必要的运行时开销.但是,为了节省一些精力,您可以在类本身上编写一个函数来处理此检查.
class Person {
String name;
Long id;
// constructor, getters, and setters
public boolean isEmpty() {
return (this.name == NULL && this.id == NULL);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你的身体代码可能如下所示:
Person person = new Person();
if (!person.isEmpty()) {
personList.add(person);
}
Run Code Online (Sandbox Code Playgroud)
如果在运行时之前不知道所有字段,则需要使用此stackoverflow应答所描述的反射.
| 归档时间: |
|
| 查看次数: |
10768 次 |
| 最近记录: |