我经常看到java SourceCode,其中方法或构造函数的值为null是不允许的。一个典型的实现的,这看起来像是否有意义自我检查Java中的空值
public void someMethod(Object someObject){
if(someObject == null) throw new NullPointerException()
someObject.aMethodCall()
}
我在看毫无意义为自己所有,因为如果我尝试调用方法上的空指针的NullPointerException
反正是抛出。如果此方法会抛出IllegalArgumentException或其他一些自定义异常,我会看到这种感觉。有人可以清理,为什么这个检查似乎是有道理的(正如我经常看到的那样,我经常假设,必须有这种感觉),或为什么它是完全废话
这是没用的,如果正确的行为是空指针(事实上它更糟,因为检查需要一点时间)。 – Jim
显式的空检查与JIT之后的隐式空检查一样便宜,所以我不担心这里的性能。 –
可能的重复:http://stackoverflow.com/questions/32280/passing-null-to-a-method我喜欢断言参数善良检查,就像在Ada中使用前提条件。 – vulkanino