作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从未使用过 ?
之前使用过运算符,我正在尝试弄清楚它是如何工作的。
我已经阅读了无数页并决定自己尝试一下。
我有以下声明:
getSelection().equalsIgnoreCase("Måned") ? calendarView.currentlyViewing.set(Calendar.Year) : showPopup();
据我所知,如果左侧( boolean 值)为真,它将把我的calendarView.to年设置为年份,如果不是(getSelection不等于måned),它将调用方法showPopup()
.
但是当我将其输入 Eclipse 时,出现语法错误。
我做错了什么?
最佳答案
您正在尝试使用 conditional ? :
operator决定执行哪个语句。这不是它的意图。条件运算符不能用作语句 - 它只是选择使用哪个表达式作为总体结果。
所以这很好:
foo(condition ? nonVoidMethod1() : nonVoidMethod2());
但这不是:
condition ? voidMethod1() : voidMethod2();
您应该在此处使用 if
语句:
if (getSelection().equalsIgnoreCase("Måned")) {
calendarView.currentlyViewing.set(Calendar.Year);
} else {
showPopup();
}
关于java - 这 ? boolean 禅宗运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657876/
我是一名优秀的程序员,十分优秀!