これは私が思うJavaの純粋主義者のためのものです。私は最近、ブール値へのString値のカスタム解析を実行するメソッドに問題がありました。シンプルな十分な仕事が、何らかの理由で方法以下がnullの場合にNullPointerExceptionが投げていたが...方法についてブール値からのNullPointerException
static Boolean parseBoolean(String s)
{
return ("1".equals(s) ? true : ("0".equals(s) ? false : null));
}
戻り値の型は、ブールはなぜか、どのようにNullPointerExceptionがスローされることができていますか? デバッグから、ネストされたインライン条件文がヌルに評価され、外側のインライン条件にヌルを返す点で例外がスローされているようですが、なぜか私は理由を説明できません。
は最終的に私はあきらめ、次のようにメソッドを書き直し、期待通りに動作している:
static Boolean parseBoolean(String s)
{
if ("1".equals(s)) return true;
if ("0".equals(s)) return false;
return null;
}
次のコードは、2つのとも期待どおりに動作間の半分の方法である:
static Boolean parseBoolean(String s)
{
if ("1".equals(s)) return true;
return "0".equals(s) ? false : null;
}
+1いいニースの "パズル" – NilsH
@NilsH +1とその解決のおかげで! – Robin