首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Java不允许"new List <T>"?

Java不允许使用"new List<T>"的主要原因是因为Java中的泛型是在编译时期进行类型擦除的。在编译时,所有的泛型类型参数都会被擦除为它们的上界或者Object类型。

这意味着在运行时,Java无法确定泛型类型的具体参数,因此无法直接实例化一个泛型类型的对象。如果允许使用"new List<T>"这样的语法,编译器无法确定T的具体类型,也无法进行类型检查和类型推断。

为了解决这个问题,Java提供了泛型类型的实例化方式,即通过创建一个具体的子类或实现类来实例化泛型类型。例如,可以使用"new ArrayList<T>()"来实例化一个泛型ArrayList对象。

这种方式可以通过子类或实现类来确定泛型类型的具体参数,从而进行类型检查和类型推断。这样做的好处是可以在编译时期进行类型安全检查,避免在运行时出现类型错误。

总结起来,Java不允许"new List<T>"是因为泛型类型在编译时期进行类型擦除,无法确定具体的泛型参数,因此需要使用具体的子类或实现类来实例化泛型类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券