【发布时间】:2013-07-29 21:28:07
【问题描述】:
为什么这段代码有效?
Float testFloat = null;
Float f = true ? null : 0f;
为什么会抛出异常?
Float testFloat = null;
Float f = true ? testFloat : 0f;
但最奇怪的是,这段代码居然也运行成功,没有任何异常:
Float testFloat = null;
Float f = testFloat;
Java 的三元运算符似乎改变了这种行为。谁能解释一下这是为什么?
【问题讨论】:
-
我用 JDK 7u25 运行它,它没有抛出任何异常。
-
第三个代码不能抛出异常:你声明一个变量,将其设置为空,然后声明另一个变量并将其设置为第一个为空的值。不能抛出异常
标签: java operator-keyword ternary