Commit e15012a6 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch10b] Removing the generics example with arrays, cos it's a bit confusing

parent 05b73240
Loading
Loading
Loading
Loading
+4 −8
Changes for src/main/java/ch10b/TestGenerics1.java: 4 added lines, 8 removed lines.
Original line number Diff line number Diff line
package ch10b;

import java.util.List;

public class TestGenerics1 {
  public static void main(String[] args) {
    new TestGenerics1().go();
  }

  public void go() {
    Animal[] animals = {new Dog(), new Cat(), new Dog()};
    Dog[] dogs = {new Dog(), new Dog(), new Dog()};
    List<Animal> animals = List.of(new Dog(), new Cat(), new Dog());
    takeAnimals(animals);
    takeAnimals(dogs);
  }

  public void takeAnimals(Animal[] animals) {
  public static void takeAnimals(List<Animal> animals) {
    for (Animal a : animals) {
      a.eat();
    }
+3 −0
Changes for src/main/java/ch10b/TestGenerics2.java: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@ public class TestGenerics2 {
  public void go() {
    List<Animal> animals = List.of(new Dog(), new Cat(), new Dog());
    takeAnimals(animals);

    List<Dog> dogs = List.of(new Dog(), new Dog());
//    takeAnimals(dogs);
  }

  public void takeAnimals(List<Animal> animals) {
+8 −2
Changes for src/main/java/ch10b/TestGenerics3.java: 8 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -12,10 +12,16 @@ public class TestGenerics3 {
    takeAnimals(animals);

    List<Dog> dogs = List.of(new Dog(), new Dog());
//    takeAnimals(dogs);
    takeAnimals(dogs);
  }

  public void takeAnimals(List<Animal> animals) {
  public void takeAnimals(List<? extends Animal> animals) {
    for (Animal a : animals) {
      a.eat();
    }
  }

  public <T extends Animal> void takeAnimals2(List<T> animals) {
    for (Animal a : animals) {
      a.eat();
    }
+0 −32
Changes for src/main/java/ch10b/TestGenerics4.java: 0 added lines, 32 removed lines.
Original line number Diff line number Diff line
package ch10b;

import java.util.*;

public class TestGenerics4 {
  public static void main(String[] args) {
    new TestGenerics4().go();
  }

  public void go() {
    List<Animal> animals = List.of(new Dog(), new Cat(), new Dog());
    takeAnimals(animals);

    List<Dog> dogs = List.of(new Dog(), new Dog());
    takeAnimals(dogs);
  }

  public void takeAnimals(List<? extends Animal> animals) {
    for (Animal a : animals) {
      a.eat();
    }
  }

  public <T extends Animal> void takeAnimals2(List<T> animals) {
    for (Animal a : animals) {
      a.eat();
    }
  }
}