Can I use enums in Java to define what class to call/use? If so, how? -


is possible use enums in java define class need call @ runtime?

for example, if have 3 enums , 3 classes, using same interface/common method names, can evaluate string, see if valid enum, , then, @ runtime, define class use make method call? possible?

for example, thinking this:

private enum animal {     duck, dog, cat; }  public isvalid(string animal) {     for(animal : animal.values())     {         if(a.name().equalsignorecase(animal))             return true;     }     return false; }  public feedanimal(string animal) {     if(isvalid(animal)     {         //get class use         // call class.feed();         //maybe more stuff     } } 

but i'm unsure how really.

yes possible , btw. refactor code bit , use oo concepts here. take below.

the enum:

public enum validanimals {     duck(duck.class),     dog(dog.class);      private validanimals(class animal){         this.animal=animal;     }     private class animal;      public class getanimalclass(){         return animal;     }      public static boolean isvalid(animal otheranimal) {         (validanimals animal : validanimals.values()) {             if (animal.getanimalclass() == otheranimal.getclass()) {                 return true;             }         }         return false;     } } 

the animal class, used specific animal types:

public abstract class animal {     public abstract void feedanimal(); } 

specific animals examples:

public class dog extends animal {     public void feedanimal(){         system.out.println("feeding dog");     } }  public class duck extends animal{     public void feedanimal(){         system.out.println("feeding duck");     } }  public class cat extends animal{     public void feedanimal(){         system.out.println("feeding cat");     } } 

and main class uses written above:

public class main {     public static void main(string[] args) {         dog dog = new dog();         duck duck = new duck();         cat cat = new cat();          collection<animal> hungryanimals = new arraylist<animal>();         hungryanimals.add(dog);         hungryanimals.add(duck);         hungryanimals.add(cat);          (animal a: hungryanimals){             if (validanimals.isvalid(a)){                 a.feedanimal();             }         }     }  } 

and expected output:

     feeding dog     feeding duck 

the cat not on list , stays hungry


Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -