zoukankan      html  css  js  c++  java
  • Java第八章泛型

    八、泛型

    1.在集合中使用泛型 

     

    Map
     
    Map<String,Integer> map = new HashMap<>();
    map.put("AA",33);  
    
    List
    
    List<Integer> list = new ArrayList<Integer>()
    list.add(78);
    Iterator<Integer> it = list.iterator();
    while(it.hasNext()){
        sysout(it.next());
    }


    entry

    Set<Map.entry<String,Integer>> set = map.entrySet();
    for(Map.Entry<String,Integer> o : set){
        sysout(o.getKey() + "--->" +o.getValue());
    }

     

     

     

     

    2.自定义泛型类、泛型接口、泛型方法

     

    1.当实例化泛型类的对象时,指明泛型的类型
     指明之后,对应的类中所有使用泛型的位置,都变为实例化中指定的泛型的类型
    2.如果我们自定义了泛型类,但是在实例化时没有使用,那么默认类型是Object类的
     继承泛型类或泛型接口时,可以指明泛型的类型
        private T t;
        List<T> list = new ArrayList<>();
    自定义泛型类的使用:
    Order<Boolean> order = new Order<Boolean>();
    
    声明泛型方法
    public <E> E getE(E e){
     return e;
    }
    //当通过对象调泛型方法时,指明泛型方法的类型
    调用泛型方法
    Integer i =  order.getE(34);
    Double d= order.getE(2.3);

     

     

     

      

      自定义泛型类

     

      泛型类注意点

     

    泛型类
    1.静态方法中不能使用类的泛型
    2.如果泛型类是一个接口或抽象类,则不能创建泛型类的对象。
    3.不能在catch中使用泛型
    4.从泛型类派生子类,泛型类型需具体化
    把一个集合中的内容限制为一个特定的数据类型。

     

     

     

     

    3.泛型与继承的关系

     

    4.通配符

     

    ? extends A:可以存放A及其子类

    ? super   A:可以存放A及其父类

      注意:

     

  • 相关阅读:
    portal商品展示功能逻辑
    springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期
    文件上传与下载总结
    swagger2的常用注解,传递参数的注意使用方法
    小知识回顾
    springboot如何集成mybatis的pagehelper分页插件
    MySQL基础之第8章 视图
    MySQL基础之第7章 索引
    MySQL基础之第6章 创建、修改和删除表 .
    MySQL基础之第5章 操作数据库
  • 原文地址:https://www.cnblogs.com/yangHS/p/10699725.html
Copyright © 2011-2022 走看看