【发布时间】:2019-04-26 17:09:06
【问题描述】:
为什么这段代码会在 * 和 + 运算符上抛出 invalidAssignmentOperator 错误?
public static Function<Integer, Double> tariff = t -> {
if (t = 500) {
t * t;
} else {
t + t;
}
};
【问题讨论】:
-
您的意思是 if(t==500) 而不是 if(t=500)?
-
因为
t * t;不是Java 中的有效表达式,如果它没有存储在变量中、作为参数传递或返回给调用者。在这种情况下,您可能应该返回它,因为您正在创建一个Function。此外,t = 500将t分配给500,这不是boolean,因此您的代码将无法编译。