我经常需要一个可以表示为简单枚举类型的类的变量的情况,例如:
private enum PageOrder {DOWN_THEN_OVER, OVER_THEN_DOWN};
Run Code Online (Sandbox Code Playgroud)
如果在包含变量的类中声明枚举类型,那么我必须使用不合适的限定名称MyClass.PageOrder.但是如果我创建一个新类,我只有一个简单的枚举声明类,这对我来说似乎有些过分.
出于这个原因,我经常使用整数而不是枚举类型.
有关此主题的任何意见/建议吗?
aio*_*obe 34
你可以做
import static yourpkg.MyClass.PageOrder;
Run Code Online (Sandbox Code Playgroud)
这将始终有效,因为内部枚举始终是静态的.请注意,即使在定义MyClass类的文件中也是如此.
Old*_*eon 21
出于这个原因,我经常使用整数而不是枚举类型.
请不要这样做.
您通常可以选择父类的名称,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;
Run Code Online (Sandbox Code Playgroud)
您也可以使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
如果enum是的话,显然你不能采取这种方法private.