I want to avoid writing getView != null every time I want to use
getView ?
您可以使用Null Object模式来避免在程序中的任何地方检查!= null,代码如下所示:
(1)定义一个EmptyView类
public EmptyView {
//Define a static emptyView, so that we can reuse the same object
public static final EmptyView emptyView = new EmptyView();
public show() {
//does nothing
}
}
(2)在没有可用视图的情况下使用EmptyView:
//other classes:
private View getView(){
if(viewAvailable) {
return view;
} else {
return EmptyView.emptyView;
}
}
public void showView(){
getView().show();
}
你可以看看Wiki here更多信息& Java示例.
当您从各种方法返回null时,它们可能会在程序中导致NullPointerException,并且在较大的项目中将变得非常难以调试.
因此,从方法返回null是一种不好的做法(&应该避免它们),这就是Spring API在尝试从DAO / Repository类中检索数据时通常返回空列表/ set对象(而不是null)的原因(像上面解释的EmptyView对象一样).
P.S.:此选项适用于Java8和不使用Java8.如果您使用的是Java8,那么更喜欢使用@janos的答案中给出的Optional