我在这行代码中找到了问题。忽略这段代码没有意义的事实:
if (object != null || object.someMethod()) object.doSomething();
NullPointerException
首先,我在想如果对象为空,这段代码会抛出。但是,这是一个逻辑析取,如果其中一个条件为真,则整个条件为真。所以编译器不会检查第二个条件,也不会 throws NullPointerException
。
这是 Java 标准行为或实现特定的吗?如果第二种情况为真,则此代码不安全。