我在oracle网站的java教程
中看到了这段代码片段https://docs.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html
public Object findSmallest(Object object1, Object object2) {
Relatable obj1 = (Relatable)object1;
Relatable obj2 = (Relatable)object2;
if ((obj1).isLargerThan(obj2) < 0)
return object1;
else
return object2;
}
public boolean isEqual(Object object1, Object object2) {
Relatable obj1 = (Relatable)object1;
Relatable obj2 = (Relatable)object2;
if ( (obj1).isLargerThan(obj2) == 0)
return true;
else
return false;
}
你看到if语句中的obj1用括号括起来,而点附加到它上面,为什么会这样?用括号括起来的目的是什么? ,我想只要一个对象引用与一个点一起使用并附加一个方法名称,它已经好了,但是为什么这个代码用(obj1).methodName包含它?
答案 0 :(得分:0)
如果引用是一个简单的标识符,就像在这种情况下,parens是不必要的,但仍然完全合法。因此,编写(obj1).isLargerThan(obj2)
与编写obj1.isLargerThan(obj2)
完全相同。
答案 1 :(得分:0)
封闭obj1是不需要括号,它不会产生任何差异。 以下两个陈述都是相同的,没有任何区别。
if((obj1).isLargerThan(obj2)&lt; 0)
if(obj1.isLargerThan(obj2)&lt; 0)
由于