Guest User

Untitled

a guest
May 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. class Animal { }
  2. class Mammal extends Animal { }
  3. class Giraffe extends Mammal { }
  4. ...
  5. public static List<? extends Mammal> getMammals() { return ...; }
  6. ...
  7.  
  8. public static void main(String[] args) {
  9. List<Mammal> mammals = getMammals(); // compilation error
  10. }
  11.  
  12. Type mismatch: cannot convert from List<capture#4-of ? extends Mammal> to List<Mammal>
  13.  
  14. class Zebra extends Mammal { }
  15.  
  16. List<Giraffe> giraffes = new List<Giraffe>();
  17.  
  18. List<Mammal> mammals = giraffes; // not allowed
  19.  
  20. mammals.add(new Zebra()); // would add a Zebra to a list of Giraffes
  21.  
  22. public static void main(String[] args) {
  23. List<? extends Mammal> mammals = getMammals();
  24. Mammal mammal = mammals.get(0);
  25. }
  26.  
  27. class Animal {
  28. public Animal getAnimal() {return this;}
  29. }
  30.  
  31. class Mammal extends Animal {
  32. public Mammal getAnimal() {return this;}
  33. }
  34.  
  35. class Giraffe extends Mammal {
  36. public Giraffe getAnimal() {return this;}
  37. }
Add Comment
Please, Sign In to add comment