黑马程序员技术交流社区

标题: 泛型总结 [打印本页]

作者: 天秋雨    时间: 2016-11-21 19:11
标题: 泛型总结
泛型是在定义集合之前要明确的存储的引用数据类型。

泛型是jdk1.5出现的安全新特性,解决了ClassCastExceptian(类型转换错误)的问题,提高了安全性,并且避免了强转的麻烦。

1,当要操作的元素的数据类型已知时:
      在集合中的应用:
        ArrayList<String> al=new ArrayList<String>();
      在方法中的应用:
      1> pubiic void showDemo(Collection<String> aa){
}
      2> pubiic class Person implements Comparable<Person>
2, 当要操作的元素的数据类型不确定时:
      1》自定义泛型类
          pubiic <w> void showDemo(w aa){
}
          泛型放在修饰符后返回值类型之前
      2》通配符的基本使用
         public void showDemo2(Collection<?> aa)//Collection<?> aa=new ArrayList<?>(){
         Iterrator <?> it= aa.iterator();
         
      3>泛型限定  上限
         public void showDemo2(Collection<? extends Person> aa){
         Iterrator <? extends Person> it= aa.iterator();
      4>泛型限定  下限
         public void showDemo2(Collection<? super worker> aa){
         Iterrator <? extends Person> it= aa.iterator();
         



作者: 青火    时间: 2016-11-21 20:31
泛型的上下限是什么啊
作者: lieyemu    时间: 2016-11-21 20:34
学习  学习

作者: efkllx    时间: 2016-11-21 23:41
不懂,不会用啊

作者: 天秋雨    时间: 2016-11-22 09:25
青火 发表于 2016-11-21 20:31
泛型的上下限是什么啊

上下限就是在你往集合中存放元素的时候所存元素类型的范围。
比如说在方法public void showDemo(Collection<? extends Person>  aa)中,Person就是你所存元素类型的上限。也就是说参数aa的类型只能是Person或者Person的子类。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2