Java 拆箱问题
我有一个扩展LinkedList类的类。 下面是代码的摘录:Java 拆箱问题,java,autoboxing,unboxing,Java,Autoboxing,Unboxing,我有一个扩展LinkedList类的类。 下面是代码的摘录: class SortedList<Integer> extends LinkedList<Integer> { int intMethod(Integer integerObject){ return integerObject; } } class SortedList扩展了LinkedList{ int方法(整型整型对象){ 返回整数对象; } } 这将返回自
class SortedList<Integer> extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
class SortedList扩展了LinkedList{
int方法(整型整型对象){
返回整数对象;
}
}
这将返回自动取消固定的int值。但是由于某种原因,编译器抛出一个错误,指出类型不兼容,并且所需的类型是int,找到的类型是Integer。这在另一个类中非常有效!有什么好处(这是因为在
SortedList
之后有
)
通常您对类型参数使用T
:class-SortedList
,但您使用了Integer
。也就是说,您将Integer
设置为类型参数(它隐藏java.lang.Integer
)
目前,你们的班级相当于
class SortedList<T> extends LinkedList<T> {
int intMethod(T integerObject){
return integerObject; // <-- "Cannot convert from T to int"
}
}
class SortedList扩展了LinkedList{
整数方法(T整数对象){
return integerObject;//问题是您已经声明了Integer
作为SortedList
类的泛型类型参数。因此,当您将Integer
作为intMethod
方法的参数时,这意味着类型参数,而不是我怀疑的java.lang.Integer
类型我的意思是,我想你想要:
class SortedList extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
谢谢你,效果很好。我知道我应该在搞乱它之前仔细阅读泛型。这对我来说是正确的。:)
class SortedList extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
class SortedList<T> extends LinkedList<T> {
int intMethod(Integer integerObject){
return integerObject;
}
}