我试图写一个简单的方法:
boolean validate(MyObject o)
{
// propertyA && propertyB are not primitive types.
return o.getPropertyA() == null && o.getPropertyB() == null;
}
并且在 == null
部分出现了一个奇怪的错误:
Syntax error on token ==. Invalid assignment operator.
也许我的 Java 在使用了 PLSQL 一个赛季后生锈了。所以我尝试了一个更简单的例子:
Integer i = 4;
i == null;
// compile error: Syntax error on token ==. Invalid assignment operator.
Integer i2 = 4;
if (i == null); //No problem
这怎么可能?
我正在使用 jdk160_05。
澄清一下:我不是要分配任何东西,只是在两个 boolean 值之间执行 &&
操作。我不想这样做:
if (o.propertyA() == null && o.propertyB() == null) { return true; }
else { return false; }
最佳答案
== 不是赋值运算符,它是 boolean 相等运算符,参见:
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.21.2
如果要将 i 设置为空,请使用简单的赋值运算符 =:
i = null;
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.26.1
如果要检查 i 是否为空,则需要使用 == 运算符
if (i == null)
关于java - 来自 == 运算符的 "Invalid assignment"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739725/