1

我正在尝试使用我的所有静态枚举实现文件的最佳方法,而不使用任何 getter 和 setter,只使用静态信息,我在 PHP 中实现了这一点,如下例所示,你真的需要 java 中的 getter 和 setter ?

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;
}
4

5 回答 5

7
public enum EnumTrade {
  BUY, SELL
}

等等。

编辑:如果数字很重要,请执行以下操作:

public enum EnumTrade {
  BUY(1), SELL(2)
}
于 2013-09-04T14:52:39.347 回答
2

java enum没有必要拥有getter这些setter用于正常POJObeans

示例枚举可以是:

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();
    }
}
于 2013-09-04T14:54:12.003 回答
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 .... 
于 2013-09-04T14:53:59.360 回答
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;
        }
    }
}
于 2013-09-04T15:00:34.270 回答
0

为了完整起见,并且在写作时会出现事实答案,我更改了原始答案,提到您可以将所有枚举存储在一个 java 类中。

=> 最好将它们存储在用户 Tichodroma 建议的自己的文件中

但是,翻译您的示例代码,您可以在 Java 中构建它:

public class MyEnums {

 public enum EnumTrade{
    BUY, SELL
 }

 public enum EnumGender{
    MALE, FEMALE
 }

 public enum EnumHttpMethod{
    GET, POST
 }

}

然后像这样使用来自外部的不同枚举:

MyEnums.EnumTrade.BUY
于 2013-09-04T15:00:57.840 回答