泛型类如何实例化?

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

...全文
537 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
orangeguy 2007-07-01
  • 打赏
  • 举报
回复
还是没有人给个答案么?
orangeguy 2007-06-26
  • 打赏
  • 举报
回复
有人知道么?
orangeguy 2007-06-25
  • 打赏
  • 举报
回复
还是没有给个答案呀!
awded 2007-06-25
  • 打赏
  • 举报
回复
是我看错了
如果你定义class MyDataType implements Comparable<MyDataType> 这种方式的话,那么就可以直接使用
ShellSorter<MyDataType> sorter = new ShellSorter<MyDataType>();
如果定义class MyDataType<E> implements Comparable<E> 这样的话,那么肯定会有死循环,不管你怎么写,编译器都不会通过。
orangeguy 2007-06-25
  • 打赏
  • 举报
回复
你没有看懂我的定义!
我是要定义一个类名字是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
但是怎么实例化一个这样的类呢?
awded 2007-06-25
  • 打赏
  • 举报
回复
你这么定义会有死循环了。为什么一定要这么定义呢?
class MyDataType<E> implements Comparable<E>

方法里面:
public foo(MyDataType<?> myDataType)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧