来自==运算符的"无效赋值"错误

Tom*_*Tom 4 java compiler-errors

我试图写一个简单的方法:

boolean validate(MyObject o)
{
  // propertyA && propertyB are not primitive types.
  return o.getPropertyA() == null && o.getPropertyB() == null;
}
Run Code Online (Sandbox Code Playgroud)

并且在这== null部分得到了一个奇怪的错误:

令牌==上的语法错误.赋值运算符无效.

也许我的Java在PLSQL的一个赛季后生锈了.所以我尝试了一个更简单的例子:

Integer i = 4;
i == null;
// compile error: Syntax error on token ==. Invalid assignment operator.

Integer i2 = 4;
if (i == null); //No problem
Run Code Online (Sandbox Code Playgroud)

怎么会这样?

我正在使用jdk160_05.

澄清:我不是要分配任何东西,只是&&在两个布尔值之间进行操作.我不想这样做:

if (o.propertyA() == null && o.propertyB() == null) { return true; }
else { return false; }
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 9

==不是赋值运算符,它是一个布尔等于运算符,请参阅:

http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.21.2

如果要将i设置为null,请使用简单赋值运算符=:

i = null;
Run Code Online (Sandbox Code Playgroud)

http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.26.1

如果要检查i是否为null,则需要使用==运算符

if (i == null)
Run Code Online (Sandbox Code Playgroud)

  • `return i == null`将起作用.上面的代码只是`i == null`.`i == null`本身并不意味着什么. (3认同)