我必须根据布尔状态创建一个输出,例如
String smily = null;
StringBuffer buff = new StringBuffer();
buff.append(", " + smily == null ? ":)" : ":("); //$NON-NLS-1$
System.out.println(buff.toString());
问题是字符串创建语句
", " + smily == null ? ":)" : ":("
我在 2 个不同的 eclipse 环境中测试了它(也可能是 2 个不同的 java 版本,我没有检查),结果不同。
结果1:
:(
结果 2:
错误的:(
当然,如果我添加括号它正在工作
buff.append(", " + (smily == null ? ":)" : ":(")); //$NON-NLS-1$
预期结果:
, :)
请有人向我解释一下,为什么java会这样解释语句?
谢谢