use*_*037 3 java autoboxing unboxing
我有一个扩展LinkedList类的类.这是代码的摘录:
class SortedList<Integer> extends LinkedList<Integer> {
      int intMethod(Integer integerObject){
          return integerObject;
      }
}
预计会返回自动取消装箱的int值.但由于某种原因,编译器抛出一个错误,指出类型不兼容,并且所需类型为int,找到的类型为Integer.这在一个完全不同的班级工作!是什么赋予了?:(
aio*_*obe 10
这是因为你有<Integer>后SortedList.
通常T用于类型参数:class SortedList<T>,但您使用的是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 extends LinkedList<Integer> {
      int intMethod(Integer integerObject){
          return integerObject;
      }
}
| 归档时间: | 
 | 
| 查看次数: | 653 次 | 
| 最近记录: |