泛型(Generic) 泛型的优点

蔚落 2024-03-22 17:00 229阅读 0赞

泛型引入前编程的痛点

JDK 1.5 版本以前没有泛型,使用 Object 来实现不同类型的处理,有两个缺点
1、每次使用时都需要强制转换
2、在编译时编译器并不知道类型转换是否正常,运行时才知道。

  1. List list = new ArrayList();
  2. list.add("abc");
  3. list.add(23);
  4. String name = (String)list.get(0);
  5. String number = (String)list.get(1); //ClassCastException

根据《Java 编程思想》中的描述,泛型出现的动机在于:有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类


使用泛型的好处










































1. 类型安全检查
泛型的主要目标是提高Java程序的类型安全编译时期就可以检查出 Java 类型不正确导致的 ClassCastException 异常, 符合越早出错代价越小原则

List<String> list2 = new ArrayList<String>();
list2.add(1); //类型检查,不是允许的类型无法放入集合
2. 消除强制类型转换
使用时直接得到目标类型,消除许多强制类型转换。 所得即所需,这使得代码更加可读,并且减少了出错机会
3. 潜在的性能收益
由于泛型的实现方式,支持泛型几乎不需要JVM或类文件更改。所有工作都在编译器中完成。使用泛型后编译器生成的代码跟不使用泛型时所写的代码几乎一致
4. 重用性
5. 可读性

发表评论

表情:
评论列表 (有 0 条评论,229人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C# Generic

    泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。

    相关 (Generic) 优点

    泛型引入前编程的痛点 `JDK 1.5` 版本以前没有泛型,使用 Object 来实现不同类型的处理,有两个缺点 1、每次使用时都需要`强制转换`; 2、在`编译

    相关 【Reflect】(generics)

    Java泛型概述     泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 这种参数类型可以用在类、接口和方法的创