这是我遇到的一个普遍问题。我想知道是否有人知道任何合适的设计模式或技术。
private ExternalObject personObject;
private String name;
private int age;
private String address;
private String postCode;
public MyBuilderClass(ExternalObject obj)
this.personObject=obj;
build();
}
public build() {
setName(personObject.getName());
setAge(personObject.getAge());
setAddress(personObject.getAddress());
setPostCode(personObject.getPostCode());
.
.
. many more setters
}
上面的类从队列中获取外部对象,并构造MyBuilderClass对象。
如果所有字段都设置为非null非空值,则将成功构建MyBuilderClass对象。
将有许多无法构建的MyBuilderClass对象,因为外部对象会丢失数据。
我的问题是,检测对象是否已正确构建的最佳方法是什么?
我还可以使用其他哪些方法?
正如前面的答案所建议的那样,这里有2个选项,您尝试设置变量后都应添加其中两个。
使用反射来检查任何变量是否为空。(如注释中所述,这将检查该对象中的所有字段,但请小心任何超类中的字段)。
public boolean checkNull() throws IllegalAccessException {
for (Field f : getClass().getDeclaredFields())
if (f.get(this) != null)
return false;
return true;
}
对每个变量执行空检查。
boolean isValidObject = !Stream.of(name, age, ...).anyMatch(Objects::isNull);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句