gpt4 book ai didi

java - 如何为任何类型的可比较对象实现compareTo

转载 作者:行者123 更新时间:2023-12-02 02:58:23 25 4
gpt4 key购买 nike

我不知道如何在没有其他变量告诉我哪个更大的情况下如何比较两个可比较的对象。问题是:创建一个名为 Max 的类,它提供一个名为 max 的单个类方法。 max 将两个参数传递给可以比较的对象,即实现了 Java Comparable 接口(interface)的对象,如上所示。它返回对较大者的引用。如果两个对象相等,则应返回第一个。如何实现 Comparable 取决于每个类,并且您的方法将在多种不同类型的对象上调用。

它在接口(interface)中提供了 intcompareTo(Object other) 方法,但我找不到解决方案。

public class Max implements Comparable 
{
public int compareTo(Object other)
{

}

public static Comparable max(Comparable first, Comparable second)
{
int fi = first.compareTo(second);
if(fi >0)
return first;
else if (fi<0)
return second;
return first;
}
}

java.lang.AssertionError: Class should not implement Comparable: expected [false] but found [true]

这是错误之一。但我还需要编写compareTo 方法的帮助。

最佳答案

我删除了之前的答案,因为我认为,恕我直言,你让这个问题过于复杂化了。由于 max 的两个参数已实现 Comparable<T>接口(interface),您所要做的就是将其称为:

int ret = first.compareTo(second);

然后根据 ret 的值返回第一个或第二个,就像你所做的那样。这样您就不需要知道它是如何实现的。也许您可以从您的导师或正在从事此工作的其他人那里得到一些澄清(我认为这是一项作业)。

创建一些实现该接口(interface)的测试类是值得的。您可以编写一些代表大小的变量。

关于java - 如何为任何类型的可比较对象实现compareTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57063947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com