CSDNRGY
2016-03-15 01:05
采纳率: 99.3%
浏览 2.5k
已采纳

在java中简写List,Map有什么坏处吗?

就像下面那样,在myeclipse里报警告,有什么坏处吗?

 List list = new ArrayList();
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • Royal_lr 2016-03-15 01:18
    已采纳

    坏处就是你遍历list的时候,需要取出里面元素强转之后才能使用,,

    点赞 打赏 评论
  • DreamTHT 2016-03-15 01:11

    搜索下不加泛型的的影响

    点赞 打赏 评论
  • willkinson 2016-03-15 01:19

    警告是警告没有加泛型吗?集合中的泛型主要是对放进集合的对象类型的规范,取出来的时候也可以不用强制转换,这样就不会报ClassCast的错误

    点赞 打赏 评论
  • 丑旦 2016-03-15 01:20

    (1)更严格的编译检查,避免编译异常。集合记不住它内部的元素类型,你加了泛型之后,它就知道要什么了,不是这样类型的,它异常给你看。
    (2)不需要强制转型。有泛型能记住内部元素类型,取出时就不必强制转型。
    (3)代码更简洁更健壮。
    加了有这些好处,反之则是不可取之处。

    点赞 打赏 评论
  • bdmh 2016-03-15 01:24

    低版本不兼容,如果想兼容最近的低版本,还是加上

    点赞 打赏 评论
  • QH_JAVA 2016-03-15 01:34

    没添加泛型,简单的理解泛型的就是在开始的管的很严(必须要写类型)但后续很简单很方便(不用类型转化)

    点赞 打赏 评论
  • 兔子托尼啊 2016-03-15 01:35

    加上就明白你这个到底是什么类型的。

    点赞 打赏 评论
  • 夕阳不近人 2016-03-15 01:53

    真是的 加上又不会怀孕

    点赞 打赏 评论
  • 东风玖哥 2016-03-15 02:35

    没啥坏处,只要取值时类型强制转化就好

    点赞 打赏 评论
  • 夜半无声 2016-03-15 02:56

    通过在变量声明中捕获这一附加的类型信息,泛型允许编译器实施这些附加的类型约束。
    类型错误现在就可以在编译时被捕获了,而不是在运行时当作ClassCastException展示出来。
    将类型检查从运行时挪到编译时有助于您更容易找到错误,并可提高程序的可靠性。
    · 消除强制类型转换。泛型的一个附带好处是,消除源代码中的许多强制类型转换。
    这使得代码更加可读,并且减少了出错机会。
    尽管减少强制类型转换可以降低使用泛型类的代码的罗嗦程度,但是声明泛型变量会带来相应的罗嗦

    点赞 打赏 评论
  • _游侠 2016-03-15 05:11

    如果不加约束的话,list里面可以add 各种类型。。然而这些在你 编译时期是不会,报错的。
    只有你遍历的时候会发现类型不一致的问题。导致意想不到的问题出现:

    List list=new ArrayList();
    list.add("sss");
    list.add(1);
    for (Object obj:list){
        System.out.println(obj);
    }
    

    只能通过强转才能保证数据的一致性。并且强转在编译器不回提示是否可以转换ok的。

    点赞 打赏 评论

相关推荐 更多相似问题