我怎样才能将带有嵌套枚举的枚举对象传递给方法作为参数?

时间:2017-04-03 11:40:51

标签: java enums coding-style

假设我们有一个这样的枚举对象:

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

和这样的方法:

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

在我的Eclipse中,该方法无法接受嵌套枚举的枚举对象。我怎么能通过呢?我应该总是使用方法重载并声明另一种方法:

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

或者我应该使用Interface而不是外部枚举?

1 个答案:

答案 0 :(得分:3)

这是完全不同的论点。 Move不是Action的“子类”所以是的,你必须声明另一种方法。 MoveAction的内部类,但这是其他内容。