這是我認爲的java純粹主義者之一。我最近有一個方法來執行String值的自定義分析到布爾值的問題。一個很簡單的任務,但由於某些原因如下方法是空的情況下拋出一個NullPointerException ...布爾型的NullPointerException
static Boolean parseBoolean(String s)
{
return ("1".equals(s) ? true : ("0".equals(s) ? false : null));
}
該方法的返回類型布爾爲什麼或如何能一個NullPointerException異常被拋出? 通過調試,似乎在嵌套的內聯條件語句計算爲null並將外部內聯條件返回null的時候拋出異常,但我再次無法解釋原因。
最後,我放棄了,並重寫了方法如下,符合市場預期,其工作原理:
static Boolean parseBoolean(String s)
{
if ("1".equals(s)) return true;
if ("0".equals(s)) return false;
return null;
}
下面的代碼是兩者之間的半路上,也按預期工作:
static Boolean parseBoolean(String s)
{
if ("1".equals(s)) return true;
return "0".equals(s) ? false : null;
}
+1對於一個不錯的「益智遊戲」 – NilsH 2013-04-26 10:35:34
@NilsH感謝+1和解決方案! – Robin 2014-01-27 11:25:35