我不得不創建根據一個布爾狀態的輸出像打印語句與運算符? :導致意外的輸出
String smily = null;
StringBuffer buff = new StringBuffer();
buff.append(", " + smily == null ? ":)" : ":("); //$NON-NLS-1$
System.out.println(buff.toString());
問題是字符串創建語句
", " + smily == null ? ":)" : ":("
我在2個不同的蝕環境中測試了它(和可也是2個不同的java版本,這個我沒有檢查),結果是不同的。
結果1:
:(
結果2:
假:(
的CO URSE,如果我加括號,它正在
buff.append(", " + (smily == null ? ":)" : ":(")); //$NON-NLS-1$
預期結果:
,:)
可以請人向我解釋,爲什麼Java的解釋聲明辦法?
感謝
提到你的Eclipse的JDK版本 –
哦,差點忘了,StringBuffer的是一種沒有沒有,除非你得到了很充分的理由,StringBuilder的,另一方面是一個是的... – Thihara