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及其父类

      注意:

     

  • 相关阅读:
    深入浅出WPF之Binding的使用(二)
    深入浅出WPF之Binding的使用(一)
    C#中XML的读取
    DependencyProperty属性介绍
    System.Windows.Markup.IQueryAmbient 在未被应用的程序集中定义
    Unity调用windows系统dialog 选择文件夹
    #if
    协程
    将[-1,1]映射到[0,1]
    Editor模式下实例化Prefab
  • 原文地址:https://www.cnblogs.com/yangHS/p/10699725.html
Copyright © 2011-2022 走看看