Ily*_*kov 0 java ternary-operator
为什么bar下面的方法可以编译却编译foo失败?
bar
foo
res*_*man 5
这是因为Java 的优先规则。赋值的先例比 或 低?,:因此它最后被评估。
?
:
这意味着该案例的bar解析如下:
return (s != null ? s : s) = "bar";
这对编译器来说没有意义。
如果插入我上面显示的括号,您将看到编译器在同一位置失败并显示相同的错误消息,因为两者实际上是相同的。
归档时间:
9 年,6 月 前
查看次数:
3040 次
最近记录: