Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
318 views
in Technique[技术] by (71.8m points)

java - When is an unassigned expression a valid statement?

I've read Oracle's expressions tutorial and couldn't understand this.

It is well known that the following line of code is valid Java syntax:

new Object();

However, when I try this with a primitive expression:

(3 + 2);

Eclipse is showing a compile error of "The left-hand side of an assignment must be a variable".

This is true not only for primitives, but also for String literals:

"arbitraryString";

So what is the rule for an unassigned expression to be valid as a Java line of code?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The rule is in the 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

You see that a constructor invocation is a statement. But a String literal or mathematical expression is not.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...