Oct 17, 2017
Java 泛型-作用
前言
前段时间,有位同事向我请教一个问题:B 是 A 的子类,为什么下面的代码编译不通过呢?
1 | List<B> bList = new ArrayList<>(); |
抓耳挠腮,印象中我也遇到这个问题啊,忘记怎么解决了-_-||。后来在官网教程中看到有解决方法:
1 | List<? extends B> bList = new ArrayList<>(); |
泛型是 Java 中一个很强大的特性,学好它事半功倍。我决定将官网的教程翻译下来,当然不是一字一句地翻译,尽量根据自己的理解翻译出来。
为什么使用泛型
简而言之,在定义类、接口和方法时,泛型能让类或接口变成参数,这样的参数又叫类型参数。就像方法声明中的形参一样,类型参数提供了代码复用的通道,不同的是形参接收的是值,类型参数接收的是类型。
使用泛型的好处:
- 编译时强类型检查
- 消除类型转化
- 实现通用算法