sgo*_*les 13 java generics type-erasure primitive-types
在学习Java Generics的过程中,我陷入了困境.
它写成" Java Generics仅适用于Objects而不适用于原始类型 ".
例如
Gen<Integer> gen=new Gen<Integer>(88); // Works Fine ..
Run Code Online (Sandbox Code Playgroud)
但是,使用int,char等原始类型...
Gen<int> gen=new Gen<int>(88) ; // Why this results in compile time error
Run Code Online (Sandbox Code Playgroud)
我的意思是说,因为java泛型确实具有自动装箱和拆箱功能,那么当我们为我们的类声明特定类型时,为什么不能应用此功能呢?
我的意思是,为什么
Gen<int>
不自动转换为Gen<Integer>
?
请帮我清除这个疑问.
谢谢.
Autoboxing并没有说你可以使用int而不是Integer.自动装箱自动化装箱和拆箱过程.例如,如果我需要将一些原始int存储到集合中,我不需要手动创建wrpper对象.Java编译器一直在关注它.在上面的示例中,您将实例化一个Integer类型的泛型对象.这个泛型对象仍然可以正常使用int,但将int声明为泛型类型是错误的.泛型只允许对象引用而不是基元.
归档时间: |
|
查看次数: |
17997 次 |
最近记录: |