我正在实施Comparable界面,并使用它来比较运动队的名字。我注意到这是compareTo方法最简单的实现。我想知道为什么方法compareTo在方法的主体中引用它自己。这不是某种永无止境的递归吗?如何通过将方法定义为自身来实现方法?
public int compareTo(Team x)
{
return teamName.compareTo(x.teamName);
}
答案 0 :(得分:3)
您没有提供令您困惑的完整代码,但可能您提供的方法属于某个包的类Team
,并且可能是类teamName
字段的类型不同来自Team
(我猜它是java.lang.String
)。在这种情况下,您提出的方法根本不是递归的。方法some.package.Team.compareTo(some.package.Team)
调用方法java.lang.String.compareTo(java.lang.String)
,这是一个完全独立的方法。
答案 1 :(得分:1)
如果teamName
的类型为String
,则会调用字符串compareTo(...)。
答案 2 :(得分:0)
teamName
可能是String
。
所以它使用String.compareTo()
方法。