// containersindepth/SpringDetector.java // ©2015 MindView LLC: see Copyright.txt // What will the weather be? import java.lang.reflect.*; import java.util.*; import static com.mindviewinc.util.Print.*; public class SpringDetector { // Uses a Groundhog or class derived from Groundhog: public static void detectSpring(Class type) throws Exception { Constructor ghog = type.getConstructor(int.class); Map map = new HashMap<>(); for(int i = 0; i < 10; i++) map.put(ghog.newInstance(i), new Prediction()); print("map = " + map); Groundhog gh = ghog.newInstance(3); print("Looking up prediction for " + gh); if(map.containsKey(gh)) print(map.get(gh)); else print("Key not found: " + gh); } public static void main(String[] args) throws Exception { detectSpring(Groundhog.class); } } /* Output: map = {Groundhog #2=Early Spring!, Groundhog #5=Early Spring!, Groundhog #6=Early Spring!, Groundhog #4=Six more weeks of Winter!, Groundhog #9=Six more weeks of Winter!, Groundhog #8=Six more weeks of Winter!, Groundhog #0=Six more weeks of Winter!, Groundhog #1=Six more weeks of Winter!, Groundhog #3=Early Spring!, Groundhog #7=Early Spring!} Looking up prediction for Groundhog #3 Key not found: Groundhog #3 */