我的一个朋友建议我初始化类型的DTO字段(ArrayList)
并且只有像DTO这样的ArrayList类型才能避免NullPointerException
public class fooDto {
private SomeClasse someClasse = new SomeClasse();
private ArrayList<Bar> bars = new ArrayList();
}
我们应该做他的吗?这是一个很好的做法
换句话说,我们应该使用“= new SomeClasse()”吗?
解决方法:
使用List,definitelly是(尝试将项目放入空列表是非常不常见的).然而关于someClasse,它取决于.如果你试图避免不惜一切代价讨厌的空检查,也许还可以.但是,如果someClasse是一个可选字段而不是为什么要初始化?另一方面,如果它不应该为null,那么最好是抛出这个异常.毕竟很容易找到它的原因,否则你会堆栈与analisis它实际设置的东西是空值还是由于一些错误它是空的?
在我看来,通过不初始化你获得更多收益.你总是可以使用一些preconditions轻松检查空值并抛出更多的文明异常.