zoukankan      html  css  js  c++  java
  • java基础-04泛型

    介绍

    • 泛型就是数据类型的参数化表示,泛型的本质是参数化类型,常用E代表任何数据类型,在实际使用的时候把实际的数据类型传递给E。
    • 泛型的好处是设计通用的功能,多个数据类型可以共用。
    • 泛型类型E只能代表Object类型,不能代表 int,double等基本类型,要使用Integer,Double代替这些基本类型。
      因为E的上限类型默认是Object,因此只能使用Object类型或Object的子类。

    泛型分类

    接口泛型

    // 集合泛型接口,在接口名后添加<E>
    public interface Collection<E>  {
        // 接口中的泛型方法,直接使用接口中的泛型参数当做数据类型
        boolean add(E e);
    }
    

    类泛型

    // 列表泛型类,在类名后面添加<E>
    public class ArrayList<E> extends AbstractList<E> implements List<E> {
        // 泛型类中的泛型方法
        public boolean add(E e) {
            return true;
        }
    }
    

    方法泛型

    // 泛型方法, 在方法返回类型之前声明泛型<E>                      
    public static < E > void printArray( E[] inputArray )
    {
      // 输出数组元素            
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }
    

    泛型通配符

    类型通配符一般是使用  问好 ?   代替具体的类型参数。  
    例如 List<?> 在逻辑上是List<String>,List<Integer> 等所有List<具体类型实参>的父类。
    

    上限泛型和下限泛型

    泛型的上限通配符<? extends T>

    <? extends T>是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限,比如  
    
    List<? extends Fruit> fruits;  
    表示集合中的元素类型上限为Fruit类型,即只能是Fruit或者Fruit的子类。
    

    泛型的下限通配符<? super T>

    <? super E> 是 Lower Bound(下限) 的通配符 ,用来限制元素的类型下限,比如
    
    List<? super Apple> apples;  
    表示集合中元素类型下限为Apple类型,即只能是Apple或Apple的父类。
    

    参考

  • 相关阅读:
    dp第三题
    近期(2012/5/15)
    HTML5 地理位置定位(HTML5 Geolocation)原理及应用【转】
    xml 中如何正确使用 & 符号
    Python进阶07 函数对象【转】
    Android 快捷小工具
    解决数据库乱码问题【转】
    Android APK反编译详解(附图)
    字符串转日期【20080808080808】
    HTML+5+从入门到精通
  • 原文地址:https://www.cnblogs.com/wang7/p/10152803.html
Copyright © 2011-2022 走看看