I have a class that looks like this.
class SuperClass<T> {
public <K extends ClassB> K someMethod(T t) {
return null;
}
}
class ClassB {
}
class ClassA extends ClassB {
}
class ClassC {
}
public class Main extends SuperClass<ClassC>{
@Override
public ClassA someMethod(ClassC c) { //type safety warning in ClassA
return null;
}
}
From my understanding, the return type of someMethod() can be any class that extends ClassB or ClassB itself. Clearly ClassA is ClassB. What seems to be the problem and why am I getting a type safety warning?