Java 如果枚举中的类型只使用一次,我应该创建枚举还是类
在Java中,想知道哪种解决方案是最佳的编码实践和性能 因此,如果我创建了以下枚举,但对于每种类型的枚举,它将只用于一次Java 如果枚举中的类型只使用一次,我应该创建枚举还是类,java,performance,class,enums,enumeration,Java,Performance,Class,Enums,Enumeration,在Java中,想知道哪种解决方案是最佳的编码实践和性能 因此,如果我创建了以下枚举,但对于每种类型的枚举,它将只用于一次 public enum DifferType{ TypeA("TypeA", True, "Monthly", False), TypeB("TypeB", False, "Daily",True), TypeC("TypeC", True, "Yearly",False), TypeD("TypeD", False, "Monthly",Tr
public enum DifferType{
TypeA("TypeA", True, "Monthly", False),
TypeB("TypeB", False, "Daily",True),
TypeC("TypeC", True, "Yearly",False),
TypeD("TypeD", False, "Monthly",True)
TypeE("TypeE", True, "Yearly",False),
TypeF("TypeF", False, "Monthly",True),
TypeG("TypeG", True, "Yearly",False),
TypeH("TypeH", False, "Monthly",True)
}
或者一个子类,可以创建一个新对象,并在使用时设置字段
public class DifferType{
public DifferType(String name, Boolean isDown, String frequency, String isLeft){
this.name = name;
this.isDown = down;
this.frequency = frequency;
this.isLeft = isLeft;
}
}
DifferType TypeA = new DifferType("TypeA", True, "Monthly", False);
DifferType TypeB = new DifferType("TypeB", False, "Daily",True)
.....etc
它们有不同的用途。
enum
用于(通常)枚举(因此得名)某些对象的所有可能或有意义的值。所以如果TypeA
TypeH
覆盖所有可能的值,一个enum
是最好的。如果您只是提供一些示例或常用示例,那么类可能是最好的选择*
这里不应该考虑使用的数量(至少在我看来)。API会随着时间的推移而不断发展和变化,您可能会发现以前只使用过一次的东西现在到处都在使用
*有时使用枚举
和接口
组合也适用于此类情况。例如:
interface ThingDoer {
void doThing();
}
enum CommonThingDoers implements ThingDoer {
_1() {
@Override
public void doThing() {}
},
_2() {
@Override
public void doThing() {}
} // etc...
}
它允许扩展,但也表示“这些是我当前希望看到的所有值。这与您的问题无关,但在需要将实例存储在集合中之前,请避免使用诸如Boolean
之类的装箱类型。诸如Boolean
之类的原语可确保空安全行为;不要白白扔掉它。