Как я могу передать объект перечисления с вложенным перечислением в метод в качестве параметра?
Предположим, у нас есть объект 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
, но это нечто другое.