Java泛型
2022-08-23 17:20:10 16 举报
AI智能生成
Java泛型相关知识总结
作者其他创作
大纲/内容
泛型概述
泛型的本质?
类型参数化
类和接口的元素类型推迟到创建、泛型方法的元素类型推迟到方法调用
为什么引入泛型,带来了什么好处?
和数组一样,限定类型后将运行时异常可以提前在编译期就暴露
解决了存储数据的不安全性
省略了代码中的强制类型转换
定义:允许在定义类、接口时通过一个标识表示类中某个属性的类型或某个方法返回值及参数类型
泛型详解
泛型声明
泛型实例化
使用泛型主要优点是能够编译时而不是运行时检测错误
自定义泛型结构
多个参数
实例化后,操作原来泛型位置的结构必须与指定泛型类型一致
泛型不同的引用不能互相复制
泛型如果不指定,将会擦除,泛型对应的类型均按Object处理,但不等价于Object。经验:泛型要用一路都用,要不用一路都不用
若泛型结构是一个接口或抽象类,则不可创建泛型类对象
JDK1.7f泛型简化操作
泛型指定中不能用基本数据类型,可以用包装类替换
不能使用new E[]
父类有泛型,子类可以保留泛型也可选择指定泛型类型
泛型方法
方法可以被泛型化,不管定义在其中国的类是不是泛型类。泛型方法中可以定义泛型参数,此时参数的类型就是传入数据的类型。
泛型方法格式:
[访问权限]<泛型> 返回类型 方法名([泛型标识 参数名称]) 抛出的异常
通配符的使用
使用类型通配符:?
读取List<?>的对象list中的元素时,永远是安全的,不管list真实类型时什么,它都包含Object
写入list中元素时,不行。因为不知道c元素类型,不能向其中添加对象。唯一例外是null,它是所有类型成员
将任意元素加入其中不是类型安全的
唯一例外是null,它是所有类型的成员
另一方面,我们可以调用get()方法并使用其返回值。返回值是一个未知的类型,但我们知道,它总是一个Object
0 条评论
下一页