用括号括起接口对象引用的目的是什么?

时间:2016-06-28 03:34:03

标签: java

我在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包含它?

2 个答案:

答案 0 :(得分:0)

如果引用是一个简单的标识符,就像在这种情况下,parens是不必要的,但仍然完全合法。因此,编写(obj1).isLargerThan(obj2)与编写obj1.isLargerThan(obj2)完全相同。

答案 1 :(得分:0)

封闭obj1是不需要括号,它不会产生任何差异。  以下两个陈述都是相同的,没有任何区别。

if((obj1).isLargerThan(obj2)&lt; 0)

if(obj1.isLargerThan(obj2)&lt; 0)

由于