123
返回列表 发新帖
楼主: silver_xie

[SCJP] The type List<A> is assignable to List.没错吧?(解决)

[复制链接]
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
21#
 楼主| 发表于 2008-2-15 18:31 | 只看该作者
看到这段话后“为一般原则,如果类型是泛型的,同时您并不知道或者并不关心值的类型,您应该使用“?”通配符来代替一个未经处理的类型。未经处理的类型被允许仅是为了向下兼容,而且应该只能够被允许出现在老的代码中。注意,无论如何,您不能在调用构造器时使用通配符。”

觉得scjp5考试的话,A将使不被允许的,实际却是使可操作的。burn-in

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:牛
日期:2008-09-25 19:22:372009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:狗
日期:2009-01-14 14:14:37
22#
发表于 2008-2-15 20:33 | 只看该作者
我简单说两句吧

我们分析了这么长时间,无非得出两个结论:

1、对于Java5来说,默认的List是List<E>,而List成了一种特殊的类型及raw类型,所以泛型已经不是一个额外的功能或者特性了,而是一种Java5固有的性质;
2、对于通配符“?”来说,add方法是无效的,这是书上的原话,因为不知道到底要插入什么类型的对象才是合法的;
3、“就像我们所见到的,一个List<X>不允许被转换为一个List<Y>,即使这个X能够被转换为Y。然而,一个List<X>能够被转换为一个List,这样您就可以通过继承的方法来做这样的事情。”--      ----摘自Matrix。

    但是我们发现add后就变成Object类型的对象,从而失去了以前的类型;
4、其实最重要的一点,我们都忽略了,那就是SCJP本来也是一个很简单的考试,不会考像我们分析的那样难度的问题,现在再看一下选项,我们能看出来,其实就是在找泛型的继承关系,呵呵。

    A. The type List<A> is assignable to List.
      B. The type List<B> is assignable to List<A>.
      C. The type List<Object> is assignable to List<?>.
      D. The type List<D> is assignable to List<? extends B>.
      E. The type List<? extends A> is assignable to List<A>.
      F. The type List<Object> is assignable to any List reference.
      G. The type List<? extends B> is assignable to List<? extends A>.

      对于A,可以直接排出掉,因为本来就是一个带泛型,一个不带泛型;
    对于B,排除掉,两个泛型,虽然隐式的为继承关系,但是没有显示的表示出来;
    对于C,正确,因为?代表任意一种类型,包括Object;
    对于D,正确,很明显是集成关系;
    对于E,很明显是错误的,因为关系反了;
    对于F,明显也是错误的,一般这种非常嚣张的选项(比如说带有any、must,all这样的词语),利用GRE或者TOFEL考试的判别方法可以直接排除,万事没有绝对!;
    对于G,虽然说两边都是继承关系,但是很明显左边是右边的子集。

    这样分析也很简单,呵呵。

辛苦silver了,也做了不少实验,还好我们终于找到了正确的答案。

使用道具 举报

回复
论坛徽章:
8
开发板块每日发贴之星
日期:2007-12-23 01:06:08开发板块每日发贴之星
日期:2007-12-24 01:05:56开发板块每日发贴之星
日期:2007-12-27 01:05:492008新春纪念徽章
日期:2008-02-13 12:43:03开发板块每日发贴之星
日期:2008-02-14 01:02:08开发板块每日发贴之星
日期:2008-02-15 01:05:13开发板块每日发贴之星
日期:2008-02-16 01:06:48开发板块每日发贴之星
日期:2008-02-17 01:05:20
23#
 楼主| 发表于 2008-2-15 20:43 | 只看该作者
总结的真好。。。。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表