第十九章 泛型

    xiaoxiao2021-03-25  97

    19.1 概述 规定了集合内元素引用数据类型 提高安全性,eg: ArrayList<String> al = new ArrayList<String>();  好处: 1)将运行时异常ClassCastException转到了编译时 2)避免了强制转换 19.2 擦除与补偿 java文件变异后生成的class文件中不含泛型。这一动作称为泛型的擦除。为了兼容运行的类加载器。 在运行时,通过获取元素的类型进行转换动作,不需要使用者强制转换,称为泛型的补偿。 19.3 泛型类 使用泛型来接收类中要操作的引用数据类型。 当此引用数据类型不确定的时候,使用泛型来表示。 class tool<T> {} 19.4 泛型方法 泛型定义在方法上 public <T> void function (T t){} 静态方法不能访问类上定义的泛型。  19.5 泛型接口 interface Inter<T>{ public void function(T t); } //可以使用具体类型实现 class InterImpl1 implements Inter<String>{ public void function(String str){ } } //也可以继续使用泛型实现 class InterImpl2 implements Inter<Q>{ public void function(Q q{ } } 19.6 泛型限定 泛型的通配符 ? function(Collection<?>){} <? extends T> 接收T类型或者E的子类型对象(上限) <? super T> 接收T类型或者T的父类型对象(下限)
    转载请注明原文地址: https://ju.6miu.com/read-35729.html

    最新回复(0)