java - 什么时候未赋值的表达式是有效的语句?

标签 java

我已阅读 Oracle's expressions tutorial并且无法理解。

众所周知,以下代码行是有效的 Java 语法:

new Object();

但是,当我尝试使用原始表达式时:

(3 + 2);

Eclipse 显示“赋值的左侧必须是变量”的编译错误。

这不仅适用于原语,也适用于字符串文字:

"arbitraryString";

那么,未赋值表达式作为 Java 代码行有效的规则是什么?

最佳答案

规则在Java Language Specification :

Certain kinds of expressions may be used as statements by following them with semicolons.

ExpressionStatement:

  • StatementExpression ;

StatementExpression:

  • Assignment
  • PreIncrementExpression
  • PreDecrementExpression
  • PostIncrementExpression
  • PostDecrementExpression
  • MethodInvocation
  • ClassInstanceCreationExpression

您会看到构造函数调用是一个语句。但字符串文字或数学表达式不是。

关于java - 什么时候未赋值的表达式是有效的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406041/

相关文章:

java - 如何渲染具有 3 种颜色渐变的圆弧?

java - 带 Jersey 的 HK2 注入(inject)管理器,使用 OpenJDK 11 升级

java - 禁止调用 Java 扩展中的某些类

java - Spring Boot 外部属性不适用于内部带有 Spring Batch 的 Boot 2.0.0.RELEASE

java - 如何将带有嵌套对象的复杂 json 文件映射到 java 对象?

java - 通过访问方法引用属性还是直接在父类(super class)中引用属性?

java - 排除的 Artifact 显示在依赖项 :tree 中

java - 用于暂停操作的信号量,不限制并发操作

java - Spring 3 Controller 异常处理器实现问题

java - 将包含数字的字符串解析为 INT