【发布时间】:2013-08-19 15:31:37
【问题描述】:
在 Java 中使用枚举的最常见的正确方法是什么?
假设我需要在类构造函数或工厂方法参数中使用枚举,我能想到的第一件事就是在我的类中包含 public static enum 并导入它。
package mypackage;
import mypackage.Data.ContentType;
class Data {
public static enum ContentType { TYPE1, TYPE2, TYPE3 }
ContentType type;
String value;
public Data( String value, ContentType type ) {
this.value = value;
this.type = type;
}
}
用法示例:new Data( "some value", ContentType.TYPE1 );。
人们喜欢使用如下结构的原因是什么?
public static final int TYPE1 = 1;
public static final int TYPE2 = 2;
public static final int TYPE3 = 3;
【问题讨论】:
-
查看
TimeUnit枚举以及它如何与java.util.concurrent包一起使用。 -
@AndrewMartin:这不是一个很好的例子;这是一个丑陋但有用的 hack。
-
当你有一个属性在一个固定和封闭的集合中获取它的值时使用枚举。示例:扑克牌可以是 {SPADES, HEARTS, DIAMONDS, CLUBS}
-
@SLaks:我相信你比我更了解它。为什么它是一个丑陋的黑客?
标签: java coding-style enums