Java Generics - < int>到<整数>
在学习Java Generics的过程中,我陷入了困境。
它写成“Java Generics仅适用于Objects而不适用于原始类型”。
例如
Gen<Integer> gen=new Gen<Integer>(88); // Works Fine ..
但是,使用int,char等原始类型...
Gen<int> gen=new Gen<int>(88) ; // Why this results in compile time error
我的意思是说,因为java泛型确实有自动装箱&amp;取消装箱功能,那么为什么在我们为类声明特定类型时无法应用此功能?
我的意思是,为什么Gen<int>
没有
自动转换为
Gen<Integer>
?
请帮我清除这个疑问。
谢谢。
没有找到相关结果
已邀请:
4 个回复
播匣扦阔食
樊熄忙暖
悲帽慑彤电
和
对于原语是没有意义的,如果
包括原语,是或否?等等)并且必须处理类型转换(假设您使用
对集合进行参数化并添加
......?) 从程序员的角度来看,这是一个很好的理由:性能不佳的操作是可见的!允许原始类型作为类型参数将需要隐藏的自动装箱(用于存储的收件箱,用于读取操作的发件箱。收件箱可能会创建昂贵的新对象。如果他们使用基元对泛型类进行参数化,则人们会期望快速操作但反之亦然。
魄龟呸筹
只是一个普通的课程,就像其他课程一样。没有任何原始对象的区别。 至于为什么Java人没有这样做......我实际上并不知道原因,但我认为这样的抽象不适合现有的Java规范而不会使语义过于复杂(或者不会牺牲向后兼容性,这当然是肯定的不是一个可行的选择)。