использование внутренних классов в Java -enum

У меня очень специфическая проблема, связанная с внутренним классом. Позвольте мне показать вам пример кода:

class Foo {
    MYOPTIONS temp;

    public static enum MYOPTIONS {
        OPTION1, OPTION2, OPTION3;
    } 
}

Итак, это перечисление находится внутри класса Foo. Теперь я хочу установить переменную temp как одну из трех опций, но сделать это вне класса Foo, скажем, из класса с именем External. К сожалению, у меня нет метода set для этого, потому что External.setTemp (MYOPTIONS.OPTION1)недействителен, поскольку перечисление не отображается во внешнем классе. Так что единственное, что я мог придумать, это иметь три метода в классе Foo :

public void setTempOption1 () {this.temp=MYOPTIONS.OPTION1;}
public void setTempOption2 () {this.temp=MYOPTIONS.OPTION2;}
public void setTempOption3 () {this.temp=MYOPTIONS.OPTION3;}

. Очевидно, что другой вариант — изменить перечисление и не использовать его как внутренний класс. Есть ли другие варианты, которые мне не хватает? Спасибо

13
задан user unknown 28 April 2012 в 11:02
поделиться