本文主要是介绍泛型局限性和常见错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
泛型主要用于编译阶段,编译后生成的字节码class文件不包含泛型中的类型信息。类型参数在编译后会被替换成Object,运行时虚拟机并不知道泛型。因此,使用泛型时,如下几种情况是错误的:
基本类型不能用于泛型
Test<int> t
这样的写法是错误的,我们可以使用对应的包装类 Test<Integer> t;
不能通过类型参数创建对象
T elm = new T();
运行时类型参数 T 会被替换成 Object,无法创建 T 类型的对象,容易引起误解,java干脆禁止这种写法。
这篇关于泛型局限性和常见错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!