鉴于:
Object x = null;
考虑代码片段#1:
if (x == null || !x.equals(new Object()))
System.out.println("I print!");
代码片段 #1 并没有NullPointerException
像我最初认为的那样抛出 a 。我可以在操作员的一点帮助下引发异常|
。代码片段#2:
if (x == null | !x.equals(new Object()))
System.out.println("This will throw a NullPointerException..");
那么为什么我的第一个代码片段从未评估过其中包含一元 NOT 运算符的正确表达式(感叹号!
)?根据..所有的网站..一元NOT运算符的优先级高于逻辑OR运算符(||
)。