A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙茜茜 中级黑马   /  2013-6-19 09:58  /  2718 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Super_Class 于 2013-6-19 19:49 编辑
  1. //Person是Student和Worker的父类
  2. TreeSet<Worker> w=new TreeSet<Worker>(new Comp());
  3. TreeSet<Student> w=new TreeSet<Student>(new Comp());
  4. //而比较器是
  5. class  Comp implements Comparator<Person>{}
复制代码
问题1、定义比较器这句class Comp implements Comparator<Person>{}是不是等效于class Comp implements Comparator<? super Person>{},只做简写?
问题2、不是说<? super Person>表示Person和其父类吗,怎么能给他的子类用,想给子类用不是得<? extends Person>吗   ??

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

14 个回复

倒序浏览

回帖奖励 +10

表示没看懂问题
回复 使用道具 举报

回帖奖励 +10

问题1,定义比较器这句class Comp implements Comparator<Person>{}是不是等效于class Comp implements Comparator<? super Person>{},只做简写?
应该是等效于class Comp implements Comparator<? extends Person>{},泛型上限

问题2,<? super Person>是给Person和其父类用,泛型下限

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

回复 使用道具 举报
张承富 发表于 2013-6-19 10:44
问题1,定义比较器这句class Comp implements Comparator{}是不是等效于class Comp implements Comparator ...

如果按你这样理解我也就不用问了
api里这样写的

QQ截图20130619120333.jpg (54.43 KB, 下载次数: 0)

QQ截图20130619120333.jpg

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报

回帖奖励 +10

? super E

只能传入E 或者E的父类
回复 使用道具 举报
经过群里热心同学解答,终于解决了,版主看到就改一下吧
回复 使用道具 举报

回帖奖励 +10

我看看有金币没
回复 使用道具 举报

回帖奖励 +10

这是泛型的一个实例:指的是向上造型向下是?super E向上造型一个泛型对象的引用例如,假设我们有很多箱子,每个箱子里都装有不同的水果,我们需要找到一种方法能够通用的处理任何一箱水果。更通俗的说法,A是B的子类型,我们需要找到一种方法能够将C<A>类型的实例赋给一个C<B>类型的声明。为了完成这种操作,我们需要使用带有通配符的扩展声明,就像下面的例子里那样:1List<Apple> apples = new ArrayList<Apple>();2List<? extends Fruit> fruits = apples;“? extends”是泛型类型的子类型相关性成为现实:Apple是Fruit的子类型,List<Apple> 是 List<? extends Fruit> 的子类型。现在我来介绍另外一种通配符:? super。如果类型B是类型A的超类型(父类型),那么C<B> 是 C<? super A> 的子类型:1List<Fruit> fruits = new ArrayList<Fruit>();2List<? super Apple> = fruits;
回复 使用道具 举报

回帖奖励 +10

好深奥的样子
回复 使用道具 举报
楼主威武霸气  真给力
回复 使用道具 举报

回帖奖励 +10

<? super Person>是可以传入person或者person的父类吧
回复 使用道具 举报

回帖奖励 +10

领奖咯哈哈:P
回复 使用道具 举报

回帖奖励 +10

来拿黑马币的,太缺钱了
回复 使用道具 举报

回帖奖励 +10

来拿黑马币的,太缺钱了
回复 使用道具 举报
些许 中级黑马 2014-12-22 18:45:45
15#
我还没学到泛型呢   才学到线程 飘过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马