Перечисление, объявленное в суперклассе, недоступно в подклассе

#java #enums

#java #перечисления

Вопрос:

Код выглядит следующим образом :

 public class CreateAndUpdateTaxRates {

    public enum WIDGETS {
        RULE_TEMPLATE(0), INSTRUMENT(1), SECURITY_TYPE(2), SECURITY(3), SECURITY_CLASSIFICATION(4), POSITION(5), CLIENT_CLASSIFICATION(6);

        private int widgetNo;

        private WIDGETS(int widgetNo) {
            this.widgetNo = widgetNo;
        }

        public void setWidgetNo(int widgetNo) {
            this.widgetNo = widgetNo;
        }

        public int getWidgetNo() {
            return widgetNo;
        }
    }

public class CreateAndUpdateCATaxCountryDocumentedRates extends CreateAndUpdateTaxRates {

}
  

Хотите получить доступ к перечислению в подклассе CreateAndUpdateCATaxCountryDocumentedRates. Как к нему можно получить доступ? Как только к нему будет получен доступ, мне нужно соответствующим образом установить значение enum в подклассах. Например. Для RULE_TEMPLATE значение виджета no равно 0. Я хочу изменить его на 2 из подкласса.

Заранее спасибо!!!

Комментарии:

1. Почему в вашем перечислении есть установщик?

2. Этот вопрос пахнет плохим дизайном. Почему вы хотите изменить значение перечисления? Почему оно содержится в классе как внутреннее перечисление?

3. @YassinHajaj Я немного новичок в enum. Не могли бы вы, пожалуйста, подсказать, как мне следует это спроектировать для достижения ожидаемых результатов.

4. @vandench потому что я хочу изменить свойство widgetno перечисления const из подкласса

5. @ChinmayPareek Обычно перечисление должно содержать статические значения, которые не меняются. Скажем, цвета, состояния, планеты и т.д… Здесь, если вам нужны динамически изменяемые значения, вам лучше относиться к этому как к классу, создавать объекты и устанавливать значения по умолчанию, например.