三目演算子bug?そうだったのか!
2376 ワード
コード1:
出力:
コード2:
出力2:
実際:演算子の優先度の問題です!+優先度が==より高いので、+演算を先に行い、==演算
String name0 = null;
Integer isDisplay0 = null;
System.out.println("Integer :"+isDisplay0 == null?"":isDisplay0+"---I");
System.out.println("String :"+name0 == null?"":name0+"---S");
出力:
null---I
null---S
コード2:
String name0 = "123";
Integer isDisplay0 = 123;
System.out.println("Integer :"+isDisplay0 == null?"":isDisplay0+"---I");
System.out.println("String :"+name0 == null?"":name0+"---S");
出力2:
123---I
123---S
, , ?,,,,
実際:演算子の優先度の問題です!+優先度が==より高いので、+演算を先に行い、==演算
"Integer :"+isDisplay0 == null?"":isDisplay0
("Integer :"+isDisplay0 )== null?"":isDisplay0
であるため、前の文字列がブロックされていることが明らかになった.皮肉なことに君の基礎を取ったらどうだ.