我正在尝试使用所有静态枚举实现文件的最佳方法,不使用任何getter和setter,只是静态信息,我在PHP中实现这一点,如下例所示,你真的需要getter和java中的setters?
final class EnumTrade {
const buy = 1;
const sell = 2;
}
final class EnumGender {
const male = 1;
const female = 2;
}
final class EnumHttpMethod {
const get = 1;
const post = 2;
}
答案 0 :(得分:7)
public enum EnumTrade {
BUY, SELL
}
等等。
修改:如果数字很重要,请执行:
public enum EnumTrade {
BUY(1), SELL(2)
}
答案 1 :(得分:2)
java enum
中的无需getter
和setter
这些用于普通POJO
或beans
示例枚举可以是:
public enum EventRecurringType {
YEARLY("1"),
QUARTERLY("2"),
MONTHLY("3"),
WEEKLY("4"),
DAILY("5"),
NONE("0");
private String value;
EventRecurringType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return this.getValue();
}
public static EventRecurringType getEnum(String value) {
if(value == null)
throw new IllegalArgumentException();
for(EventRecurringType v : values())
if(value.equalsIgnoreCase(v.getValue())) return v;
throw new IllegalArgumentException();
}
}
答案 2 :(得分:0)
public enum MyConst{ BUY(1), SELL(2), MALE(3), FEMALE(4), GET(5), POST(6);
public final int value;
MyConst(int value) {
this.value = value;
}
public int getValue() {
return value;
}
};
或者只是选择
public enum MyConst{ BUY(1), SELL(2) }; and same for MALE, FEMALE ....
答案 3 :(得分:0)
public enum EnumTrade
{
BUY,
SELL,
}
如果你需要的只是枚举的序数值,你可以直接通过EnumTrade.BUY.ordinal
如果要在枚举中存储其他数据,请执行以下操作(根据需要进行扩展):
public enum EnumGender
{
MALE(1),
FEMALE(2);
private final int value;
private EnumGender(String value)
{
this.value = value;
}
public int getValue()
{
return this.value;
}
//In case you need to grab an enum by the value constant
public getEnumGender(int value)
{
switch(value)
{
case 1:
return EnumGender.MALE;
case 2:
default:
return EnumGender.FEMALE;
}
}
}
答案 4 :(得分:0)
为了完整性和写作时回答的问题,我改变了原来的答案提到你可以将所有的枚举存储在一个java类中。
=>最好将它们存储在自己的文件中,例如用户Tichodroma建议
然而,翻译您的exmaple代码可以用Java构建它:
public class MyEnums {
public enum EnumTrade{
BUY, SELL
}
public enum EnumGender{
MALE, FEMALE
}
public enum EnumHttpMethod{
GET, POST
}
}
然后使用外部的不同枚举:
MyEnums.EnumTrade.BUY