public class ShellSorter<E extends Comparable>
实例化上面一个类用ShellSorter<MyDataType> 就可以了,但是如何实例化如下一个泛型类?
public class ShellSorter<E extends Comparable<E>>
我已经在MyDataType中实现了 public int compareTo(Object o)方法
非常感谢

解决方案 »

  1.   

    你这么定义会有死循环了。为什么一定要这么定义呢?
    class MyDataType<E> implements Comparable<E>方法里面:
    public foo(MyDataType<?> myDataType)
      

  2.   

    你没有看懂我的定义!
    我是要定义一个类名字是ShellSorter,这个类构造时需要接受一个泛型为E的Object,这个object实现了Comparable接口,也就是这个泛型为E的object实现了compareTo方法,所以要在Comparable后面加上<E>,成为ShellSorter<E extends Comparable<E>>, 如果写成ShellSorter<E extends Comparable>, 编译时会有warning。 另外这样些定义并不会有死循环,网上很多这样的java类库。如http://godel.stanford.edu/public/doc-versions/util/doc/api/csli/util/collections/SortedList.html
    但是怎么实例化一个这样的类呢?
      

  3.   

    是我看错了
    如果你定义class MyDataType implements Comparable<MyDataType> 这种方式的话,那么就可以直接使用
    ShellSorter<MyDataType> sorter = new ShellSorter<MyDataType>();
    如果定义class MyDataType<E> implements Comparable<E> 这样的话,那么肯定会有死循环,不管你怎么写,编译器都不会通过。