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

时间:2018-07-27 07:29:10

标签: java syntax parentheses function-call

只是碰到了这个语句,想知道为什么这个函数调用起初看起来像是强制转换?

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

由于我还没有看到这种语法-与简单语法相比有什么作用

bo.setValue(bo.getValue().negate());

1 个答案:

答案 0 :(得分:7)

(bo).setValue(bo.getValue().negate())bo.setValue(bo.getValue().negate())是相同的语句,括号在此处是多余的。

尽管在我们编写

之类的表达式时需要它们
Object o;
(o = new Object()).toString();  // class java.lang.Object

如果我们省略了它们,

Object o;
o = new Object().toString();  // class java.lang.String