我对Guava还比较陌生(说实话,我不是“相当陌生”,在这方面我完全是新手),所以我决定阅读一些文档,并在阅读以下内容时感到非常惊讶:
com.google.common.base.Preconditions.checkNotNull(...)
我不明白这个方法的意义。这意味着不再进行以下操作:
myObject.getAnything();
(如果myObject为空,可能会引起NullPointerException)
我应该使用
checkNotNull(myObject).getAnything();
如果myObject
为空,它将抛出一个NullPointerException
,否则返回myObject
。
我很困惑,可能这是最愚蠢的问题,但是......
这有什么意义呢? 对于任何我能想到的情况,这两行代码都会产生相同的结果。
我甚至认为后者不太易读。
所以我一定是漏掉了什么。是什么呢?
checkNotNull(reference, errorMessageTemplate, errorMessageArgs)
提供更好的诊断:https://guava.dev/releases/23.0/api/docs/com/google/common/base/Preconditions.html#checkNotNull-T-java.lang.String-java.lang.Object...- - Vadzim