相关疑难解决方法(0)

奇怪的Java行为.三元运算符

为什么这段代码有效?

Float testFloat = null;
Float f = true ? null : 0f;
Run Code Online (Sandbox Code Playgroud)

为什么会抛出异常呢?

Float testFloat = null;
Float f = true ? testFloat : 0f;
Run Code Online (Sandbox Code Playgroud)

但最奇怪的是,此代码也成功运行,没有任何例外:

Float testFloat = null;
Float f = testFloat;
Run Code Online (Sandbox Code Playgroud)

似乎Java的三元运算符改变了行为.谁能解释为什么会这样,拜托?

java ternary operator-keyword

9
推荐指数
1
解决办法
816
查看次数

Java的简写形式当其中一个返回的对象为null时,If语句返回NullPointerException

为什么此代码返回错误:java.lang.NullPointerException

Object obj = null;
Long lNull = null;
Long res = obj == null ? lNull : 10L;
Run Code Online (Sandbox Code Playgroud)

但是以下方式可以正常运行:

Object obj = null;
Long res = obj == null ? null : 10L;
Run Code Online (Sandbox Code Playgroud)

java null if-statement nullpointerexception

7
推荐指数
1
解决办法
395
查看次数