Java从String创建枚举

这个问题在这里已经有了答案:

  • 通过字符串值查找Java枚举23个答案

  • 添加并使用这种方法

    public static PaymentType parse(String type) {
        for (PaymentType paymentType : PaymentType.values()) {
            if (paymentType.getType().equals(type)) {
                return paymentType;
            }
        }
        return null; //or you can throw exception
    }
    

    枚举没有准备好使用此方法。 您或者需要使用确切的字段名称:

    PaymentType.valueOf("SUBSCRIPTION_MODIFY");
    

    或者编写你自己的方法,例如:

    public static PaymentType fromString(String string) {
      for (PaymentType pt : values()) {
        if (pt.getType().equals(string)) {
          return pt;
        }
      }
      throw new NoSuchElementException("Element with string " + string + " has not been found");
    }
    

    所以这段代码:

    public static void main(String[] args) {
      System.out.println(PaymentType.fromString("subscr_modify"));
    }
    

    打印:

    SUBSCRIPTION_MODIFY
    

    valueOf返回标识符与您传入的字符串相匹配的枚举项。
    例如:

    PaymentType t = PaymentType.valueOf("SUBSCRIPTION_NEW");
    

    如果您想要获取type字段与给定字符串匹配的枚举项,请在PaymentType上编写一个静态方法,该方法通过PaymentType.values()循环并返回匹配项。

    链接地址: http://www.djcxy.com/p/38101.html

    上一篇: Java create enum from String

    下一篇: How do I use enums together with command line arguments?