# 为什么要使用泛型?
简而言之,在定义类,接口和方法时,泛型使 类型(类和接口)成为参数。 就像方法声明中使用的更熟悉的 形式参数 一样,类型参数为您提供了一种方法, 让您在不同的输入中重用相同的代码。区别在于形式参数的输入是值,而类型参数的输入是类型。
使用泛型的代码比非泛型代码有许多优点:
编译时更强大的类型检查。
Java 编译器将强类型检查应用于通用代码,并在代码违反类型安全性时发出错误。修复编译时错误比修复运行时错误要容易得多。
消除强制转换
以下没有泛型的代码段需要强制转换:
List list = new ArrayList(); list.add("hello"); String s = (String) list.get(0);
1
2
3当重写为使用泛型时,代码不需要强制转换:
List<String> list = new ArrayList<String>(); list.add("hello"); String s = list.get(0); // no cast
1
2
3使程序员能够实现通用算法。
通过使用泛型,程序员可以实现泛型算法,这些泛型算法可以处理不同类型的集合,可以进行定制,并且类型安全,易于阅读。