1

泛型

在任何重要的软件项目中,bug都是不可避免的,仔细的规划、编程和测试可以帮助减少它们的普遍性,但是它们总会在某个地方以某种方式潜入你的代码,随着新功能的引入以及你的代码库在规模和复杂性方面的增长,这一点变得尤为明显。

幸运的是,一些错误比其他错误更容易被发现,例如,编译时错误可以在早期检测到,你可以使用编译器的错误消息来确定问题所在并立即修复它。但是,运行时错误可能会更成问题,它们并不总是立刻浮出水面,当它们出现时,它可能在程序中的某个点上,与问题的实际原因相去甚远。

泛型通过在编译时检测到更多错误来增加代码的稳定性。

为什么要使用泛型?

简而言之,泛型使类型(类和接口)在定义类、接口和方法时成为参数,与方法声明中使用的更熟悉的形式参数非常相似,类型参数提供了一种使你可以使用不同的输入重用相同的代码的方法,不同之处在于形式参数的输入是值,而类型参数的输入是类型。

使用泛型的代码比非泛型代码有许多好处:

  • 在编译时进行更强大的类型检查。

Java编译器对泛型代码应用强类型检查,并在代码违反类型安全时发出错误,修复编译时错误比修复运行时错误更容易,这很难找到。

  • 消除数据类型转换

以下没有泛型的代码片段需要强制转换:

List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);

当重写为使用泛型时,代码不需要强制转换:

List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0);   // no cast
  • 使程序员能够实现通用算法。

通过使用泛型,程序员可以实现通用算法,这些算法可以处理不同类型的集合,可以自定义,并且类型安全且易于阅读。


上一篇:自动装箱和拆箱
下一篇:泛型类型

博弈
2.5k 声望1.5k 粉丝

态度决定一切