| 8 | import java.util.*; |
| 9 | |
| 10 | public class PetCreator extends Creator { |
| 11 | // No try block needed. |
| 12 | public static final |
| 13 | List<Class<? extends Pet>> ALL_TYPES = |
| 14 | Collections.unmodifiableList(Arrays.asList( |
| 15 | Pet.class, Dog.class, Cat.class, Rodent.class, |
| 16 | Mutt.class, Pug.class, EgyptianMau.class, |
| 17 | Manx.class, Cymric.class, Rat.class, |
| 18 | Mouse.class, Hamster.class)); |
| 19 | // Types for random creation: |
| 20 | private static final |
| 21 | List<Class<? extends Pet>> TYPES = |
| 22 | ALL_TYPES.subList( |
| 23 | ALL_TYPES.indexOf(Mutt.class), |
| 24 | ALL_TYPES.size()); |
| 25 | @Override |
| 26 | public List<Class<? extends Pet>> types() { |
| 27 | return TYPES; |
| 28 | } |
| 29 | public static void main(String[] args) { |
| 30 | System.out.println(TYPES); |
| 31 | List<Pet> pets = new PetCreator().list(7); |
| 32 | System.out.println(pets); |
| 33 | } |
| 34 | } |
| 35 | /* Output: |
| 36 | [class reflection.pets.Mutt, class reflection.pets.Pug, |
| 37 | class reflection.pets.EgyptianMau, class |