javaに奇妙なものがいくつか見つかりました。条件付き代入の数値昇格がJavaで動作する方法
コード:
System.out.println(System.getProperty("java.version"));
System.out.println((true) ? (int)2.5 : 3.5);
System.out.println((true) ? (int)2.5 : 3);
System.out.println((true) ? (int)2.5 + "" : 3.5);
結果:
1.8.0_40 2.0 2 2
それは何ですか? falseの値がdoubleでない場合、またはtrueの場合に文字列値がvalueに追加された場合にのみ整数値が返される理由は?バグですか?