Скажем есть классы Кошка, Собака, Мышка и Мячик.
Кошка может что-то ловить. Есть ли более изящный способ реализации того, что может поймать Кошка?
public class Test {
public static void main(String[] args) {
Cat tomCat = new Cat();
Dog pitDog = new Dog();
Mouse jerryMouse = new Mouse();
tomCat.somethingCatches(pitDog, new String[]{"LittleBall", "Mouse"});
tomCat.somethingCatches(jerryMouse, new String[]{"LittleBall", "Mouse"});
}
}
//###
class Cat {
void somethingCatches(Object anObj, String[] arrayLegalTypes) {
for (String aLegType : arrayLegalTypes) {
if (anObj.getClass().getSimpleName().equals(aLegType)) {
System.out.println("Hurrah, I caught a " + aLegType);
break;
}
}
}
}
//###
class Mouse {}
//###
class Dog {}
//###
class LittleBall {}