I have a class that extends the LinkedList class. Here\'s an excerpt of the code:
class SortedList extends LinkedList {
i
This is because you have <Integer>
after SortedList
.
Usually you use T
for type parameters: class SortedList<T>
, but you used Integer
instead. That is, you made Integer
a type parameter (which shadows the java.lang.Integer
).
Your class, as it stands, is equivalent to
class SortedList<T> extends LinkedList<T> {
int intMethod(T integerObject){
return integerObject; // <-- "Cannot convert from T to int"
}
}
Remove the type parameter and it works just fine:
class SortedList extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
The problem is that you've declared Integer
as a generic type parameter for the SortedList
class. So when you refer to Integer
as a parameter of the intMethod
method, that means the type parameter, not the java.lang.Integer
type which I suspect you meant. I think you want:
class SortedList extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
This way a SortedList
is always a list of integers, which I suspect is what you were trying to achieve. If you did want to make SortedList
a generic type, you would probably want:
class SortedList<T> extends LinkedList<T> {
int intMethod(Integer integerObject){
return integerObject;
}
}