MRE 因为好吧,作业...叹息
这是我遇到的问题:
考虑以下课程:
class MyClass<T extends Comparable<T>> implements Comparable<MyClass<T>> {
... override the compareTo
}
这使我可以将
MyClass<Integer>
与另一个 MyClass<Integer>
进行比较,甚至将 MyClass<MyClass<Integer>>
与另一个 MyClass<MyClass<Integer>>
进行比较。
但是,作业要求我能够将 MyClass<MyClass<Integer>>
与 MyClass<MyClass<String>>
进行比较,因为比较仅使用计数器并返回具有较大计数器的类(作为两者中较大的一个)。您可以使用
?
而不是显式指定类型:
class MyClass<T extends Comparable<T>> implements Comparable<MyClass<?>> {
private int counter; // or any other variable
@Override
public int compareTo(MyClass<?> o) {
return counter - o.counter;
}
}
然后像这样使用它:
MyClass<String> string = new MyClass<>();
MyClass<Integer> integer = new MyClass<>();
int result = string.compareTo(integer);