当前位置:  开发笔记 > 编程语言 > 正文

Java:在Type和Implementation上指定泛型

如何解决《Java:在Type和Implementation上指定泛型》经验,为你挑选了1个好方法。

我见过的大多数引用,以及我的IDE的代码完成都在我的变量类型及其实现上指定了Generic类型,例如.

List string = new ArrayList();

最近我开始在实现中跳过泛型类型,例如.

List strings = new ArrayList();

假设编译器只检查它的spiffy泛型voodoo的类型,并且实现不应该关心,因为它的泛型类型在编译时被擦除,并且根本不应影响运行时.

我天真吗?是否有理由在实现中包含泛型类型?



1> Itay Maman..:

编译器可能允许您编写具有此类分配的代码(取决于您的警告/错误设置),但它是不安全的.这是一个例子:

List dates = new ArrayList();
List list = dates;
List strings = list;

strings.add("a");
Date d = dates.get(0); // Boom!!

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有