Java enum过高?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我经常遇到这样的情况:我需要一个可以表示为简单枚举类型的类的变量,例如:

private enum PageOrder {DOWN_THEN_OVER, OVER_THEN_DOWN};

如果在包含该变量的类中声明枚举类型,那么我必须使用不合适的限定名称MyClass.PageOrder。但是如果我创建一个新类,我只有一个简单的枚举声明的类,这对我来说过分了。

出于这个原因,我经常使用整数而不是枚举类型。

对此主题有何评论/建议?

提问于
用户回答回答于
用户回答回答于

出于这个原因,我经常使用整数而不是枚举类型。

请不要这样做。

你通常可以为父类选择一个名称,enum这实际上有助于代码的清晰度。

class Page {
    enum Order {
        DOWN_THEN_OVER, OVER_THEN_DOWN;
    }
}

// Accessing: A little verbose but clear and efficient.
Page.Order order = Page.Order.DOWN_THEN_OVER;

你也可以static import每个人enum都使用,但我更喜欢上面的详细程度。

import static com.oldcurmudgeon.test.Test.Order.DOWN_THEN_OVER;
import static com.oldcurmudgeon.test.Test.Order.OVER_THEN_DOWN;

public class Test {

    enum Order {

        DOWN_THEN_OVER, OVER_THEN_DOWN;
    }

    public void test() {
        Order pageOrder = DOWN_THEN_OVER;
    }

}

扫码关注云+社区