原始代码是
if(object==null){
throw new CustomException(ErrorEnum.OBJECT_NULL)
}
现在我想使用
Optional
来处理NullPointerException
。像这样
Optional.ofNullable(object).orElseThrow(()->{throw new CustomException(ErrorEnum.OBJECT_NULL);}
但是这样做会使代码比原始代码更长。也许我应该用第一种方法解决问题?
最佳答案
我同意评论者和其他回答的意见,他们说此处Optional
是不必要的。确实,它与我在其他地方也给出的建议相呼应。在这种情况下,如果一个人已经有一个可以为空的变量object
,那么将其包装在Optional
中只是抛出一个异常就很round回,并且正如您所观察到的,它比原始的更长。
要问的问题是,object
中的引用来自哪里?它是否来自另一个返回可为空的引用的方法?如果是这样,那么也许应该重构该其他方法以返回Optional<T>
而不是T
类型的可空引用。