Предлагаю вам найти другой подход к достижению этого. Если вы можете придумать способ «вложенности» состояний в странах, тогда у вас будет проблема не иметь одного типа для всех состояний. Вы не сможете использовать переменную state
, которой может быть присвоено состояние США или штата Аргентина.
Вот альтернативная модель вы можете рассмотреть следующие вопросы:
public interface State {
}
private enum UnitedStates implements State {
CALIFORNIA, ...;
}
private enum ArgentinaStates implements State {
BUENOS_AIRES, ...;
}
public enum Country {
SRILANKA(),
US(UnitedStates.values()),
ARGENTINA(ArgentinaStates.values());
Country(State... states) {
this.states = Arrays.toList(states);
}
private final List<State> states;
public List<State> getStates() {
return states;
}
}
Тогда вы можете сделать:
State state;
state = ArgentinaStates.BUENOS_AIRES;
state = UnitedStates.CALIFORNIA;
Что именно вы пытаетесь достичь? ?? –