我有一个扩展 LinkedList 类的类。
这是代码的摘录:
class SortedList<Integer> extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
这预计会返回自动拆箱的 int 值。但由于某种原因,编译器抛出一个错误,指出类型不兼容,所需的类型是 int,而找到的类型是 Integer。这在不同的班级中工作得很好!是什么赋予了? :(
这是因为你有<Integer>
after 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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)