Java 拆箱问题

Java 拆箱问题,java,autoboxing,unboxing,Java,Autoboxing,Unboxing,我有一个扩展LinkedList类的类。 下面是代码的摘录: class SortedList<Integer> extends LinkedList<Integer> { int intMethod(Integer integerObject){ return integerObject; } } class SortedList扩展了LinkedList{ int方法(整型整型对象){ 返回整数对象; } } 这将返回自

我有一个扩展LinkedList类的类。 下面是代码的摘录:

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;
    }
}