Как я могу передать объект перечисления с вложенным перечислением в метод в качестве параметра?

Предположим, у нас есть объект enum, подобный этому:

public enum Action
{
    FOO,
    BAR;
    public enum Move
    {
         UP,
         DOWN,
         LEFT,
         RIGHT 
    }
}

и такой метод:

private void useThisEnum(Action a) {
    //code
}

В моем Eclipse метод не смог принять объект enum с вложенным enum. Как я мог пройти? Должен ли я всегда использовать перегрузку метода и объявить другой метод, подобный этому:

 private void useThisEnum(Action.Move ma) {
    //code
}

Или я должен использовать интерфейс вместо внешнего перечисления?

1 ответ

Решение

Это совершенно другой аргумент. Move не является "подклассом" Action так что да, вы должны объявить другой метод. Move это внутренний класс Action, но это нечто другое.

Другие вопросы по тегам