Как прокомментировали другие, может быть, лучше подумать, действительно ли вам нужно 4 различных перечисления.
Но если вы это сделаете, вы можете заставить их реализовать общий интерфейс. Затем вы можете сопоставить входные строки с соответствующим членом перечисления и вызвать его метод, чтобы выполнить то, что вы хотите. Что-то вроде
public interface SomeInterface {
void doSomething();
};
public enum First implements SomeInterface {
ONE,TWO,THREE;
@Override
public void doSomething() { ... }
};
...
Map<String, SomeInterface> myMap = new HashMap<String, SomeInterface>();
for (First item : First.values()) {
myMap.put(item.toString(), item);
}
...
public void work(String message){
SomeInterface obj = myMap.get(message);
if (obj != null) {
obj.doSomething();
}
}
Это предполагает, что 4 возможных вещи, которые вы хотите сделать, соответствуют 4 перечислениям. Если нет, вы можете переопределить метод отдельно для каждого члена enum, например,
public enum First implements SomeInterface {
ONE,
TWO {
@Override
public void doSomething() { // do something specific to TWO }
},
THREE;
@Override
public void doSomething() { // general solution for all values of First }
};