compareTo方法(在Comparable接口中)是递归的吗?

时间:2014-10-09 22:12:25

标签: java recursion

我正在实施Comparable界面,并使用它来比较运动队的名字。我注意到这是compareTo方法最简单的实现。我想知道为什么方法compareTo在方法的主体中引用它自己。这不是某种永无止境的递归吗?如何通过将方法定义为自身来实现方法?

public int compareTo(Team x)
{
    return teamName.compareTo(x.teamName);
}

3 个答案:

答案 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()方法。