// enumerations/PetPatternMatch.java
// (c)2021 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// {NewFeature} Preview in JDK 17
// Compile with javac flags:
//   --enable-preview --source 17
import java.util.*;

public class PetPatternMatch {
  static void careFor(Pet p) {
    switch(p) {
      case Dog d -> d.walk();
      case Fish f -> f.changeWater();
      case Pet sp -> sp.feed();
    };
  }
  static void petCare() {
    List.of(new Dog(), new Fish())
      .forEach(p -> careFor(p));
  }
}