I am delving more into Generics, when I feel I know, I get proved otherwise by compiler :-)
Here's source:
public class Generics3 {
<T> void printExtends_compile_error( List<T extends Dog> t) {
}
void printExtends_correct_syntax( List<? extends Dog> t) {
}
<T> void printSuper_compile_error(List<T super Dog> t) {
}
void printSuper_correct_syntax(List<? super Dog> t) {
}
class FatherOfAllAnimal{}
class Animal extends FatherOfAllAnimal{}
class Dog extends Animal {}
class Cat extends Animal {}
class Tiger extends Animal {}
class Lion extends Animal {}
class Dog1 extends Dog{}
class Dog2 extends Dog1{}
class Dog3 extends Dog2{}
The methods ending with _compile_error are compile errors - why they aren't valid? So, can I used super
or extends
only with wild card?