当我想打印一个对象(显然不为空)时,我遇到了一些奇怪的事情。有和没有条件运算符()
如果我用这条线:
text.append("\n [ITEM ID]: " + (item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId()));
没有空指针异常,如果我item
对象null
。当然这应该是例外的结果。但是,如果使用它,而不()
马克:
text.append("\n [ITEM ID]: " + item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId())
我认为有条件的经营者不执行操作的其他部分,但我得到一个NullPointerException。
如果有人向我解释,我将不胜感激,为什么在这种情况下使用()
标记至关重要。
运算符优先级的一个例子? – 2012-02-17 15:49:31
提示:'“\ n [ITEM ID]:”+ item'成为...? – 2012-02-17 15:50:00