我有一个通用类:

public class ListObject<T>
{
    // fields
    protected T _Value = null;
      // ..
}

现在,我想执行以下操作:
ListObject<MyClass> foo = new ListObject<MyClass>();
ListObject<MyClass> foo2 = new ListObject<MyClass>();
foo.compareTo(foo2);

问题:

如何通过重新定义为通用compareTo()来定义T方法?

我想我必须以某种方式对通用T实现约束,以告诉T实现特定的接口(interface)(如果存在,则为Comparable)。

谁能给我一个小的代码样本?

最佳答案

在这里也阅读讨论:Generics and sorting in Java

简短的回答,您可以获得的最佳结果是:

class ListObject<T extends Comparable<? super T>> {
    ...
}

但是也有理由只使用:
class ListObject<T extends Comparable> {
    ...
}

关于java - 如何在Java中对通用类型设置约束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2081663/

10-10 05:51