And*_*lko 2 java variables increment
private void calculateForEachQuestion() {
...
if (questions.size() >= answers.size()) {
answers.forEach(answer -> {
if (questions.contains(answer))
this.answer.setPoints((this.answer.getPoints())++);
// Variable expected ^
});
}
Run Code Online (Sandbox Code Playgroud)
我遇到的错误是:
需要意外类型:
找到变量:value
这个陈述有什么问题?
this.answer.setPoints((this.answer.getPoints())++);
Run Code Online (Sandbox Code Playgroud)
++只有在应用于声明的变量时,运算符才有意义.
该运营商将加一到integer,long等,并将结果保存到就地相同的变量.
如果没有声明的变量,则无处可保存结果,这就是编译器抱怨的原因.
++在这种情况下允许使用运算符的一种方法是(不是最简洁的代码,但为了说明这一点):
int myVariable = this.answer.getPoints();
myVariable++;
this.answer.setPoints(myVariable);
Run Code Online (Sandbox Code Playgroud)
this.answer.getPoints()将返回一个值,并且您不能使用递增++或递减--.您只能在变量上使用它.
如果你想为它添加1,你可以这样做:
this.answer.setPoints((this.answer.getPoints())+1);
Run Code Online (Sandbox Code Playgroud)
我知道,但为什么呢?
你可以这样做:
int x = 5;
x++; // x is a variable and can have value 6
Run Code Online (Sandbox Code Playgroud)
但不是这个:
5++; // 5 is a value and can't have value 6
Run Code Online (Sandbox Code Playgroud)