0

可能重复:
什么是 Java ?: 运算符,它有什么作用?

您好,我在理解休闲代码时遇到了一些问题,有人可以帮我解决这个问题吗?

private Comparable elementAt( BinaryNode t ) {
    return t == null ? null : t.element;
}

我不明白什么t == null ? null : t.element;意思。

4

3 回答 3

5

return t == null ? null : t.element;方法

if (t==null)
  return null;
else
  return t.element;

另见http://en.wikipedia.org/wiki/%3F:#Java

于 2012-11-09T13:15:17.030 回答
3

这是一个标准的习惯用法,可以避免 a NullPointerExceptionin caset为 null。在这种情况下,它不会取消引用来获取元素,而是返回null.

有些人认为这是一个不好的习惯用法,因为它只会推迟 NPE,但是,根据具体情况,它可能正是人们所需要的。

于 2012-11-09T13:15:44.520 回答
1

它是一个三元运算符(在这种情况下检查 null),可以使用三元来代替 if/else 语句

于 2012-11-09T13:15:55.737 回答