java - 来自 == 运算符的 "Invalid assignment"错误

标签 java compiler-errors

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

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/

相关文章:

java - 使用 invokeLater 或 SwingWorker 从另一个线程更新 Swing 组件

compilation - 编译错误: hidden symbol `__aeabi_uidiv'

java - 如何在 String readAllBytes 中保留换行符

java - 覆盖@JoinColumn 可为空的值

尝试安装 Visual Paradigm 时出现 java.lang.NoClassDefFoundError : java. awt.Container

ios - 从Combine框架使用CombineLatest时“Extra argument”错误

c - 错误 : expected '=' , ','、 ';'、 'asm' 或 '__attribute__' 之前的 'stackEmpty'

java - 从持久存储加载 session 异常,扩展

Android 源代码在 ubuntu 12.04 中构建

c++ - 创建具有构造函数的单例类,该构造函数接受运行时评估的参数