调用对象时这些括号是什么意思?

Phi*_*iSe 3 java syntax parentheses function-call

刚刚遇到这个声明,并想知道为什么这个函数调用最初看起来像一个演员?

SomeClass bo = new SomeClass(); // blabla something like that to initialize the object variable
(bo).setValue(bo.getValue().negate());
Run Code Online (Sandbox Code Playgroud)

至于我还没有看到这种语法 - 与简单相比它做了什么

bo.setValue(bo.getValue().negate());
Run Code Online (Sandbox Code Playgroud)

And*_*lko 7

(bo).setValue(bo.getValue().negate())并且bo.setValue(bo.getValue().negate())是相同的陈述,括号在这里是简化的.

当我们编写类似的表达式时,它们是必需的

Object o;
(o = new Object()).toString();  // class java.lang.Object
Run Code Online (Sandbox Code Playgroud)

如果我们省略了它们,

Object o;
o = new Object().toString();  // class java.lang.String
Run Code Online (Sandbox Code Playgroud)