What is happening in line 6? <C extends Cat> is the return type of useMe, right? What does <? super Dog> do?
2. class Animal { }
3. class Dog extends Animal { }
4. class Cat extends Animal { }
5. public class Mixer<A extends Animal> {
6. public <C extends Cat> Mixer<? super Dog> useMe(A a, C c) {
7. //Some code
8. } }
The
<C extends Cat>specifies thatuseMehas one generic parameter,C, which must extendCat.Its return type is
Mixer<? super Dog>. The?denotes a wildcard.