java - Enum 中没有枚举 const 类

标签 java enums

public enum ProcessorFactory {
    A("ap") {
        Processor create() throws Exception {
            return new AProcessor();
        }
    },

    B("bp"){
        Processor create() throws Exception {
            return new BProcessor();
        }
    };

    abstract Processor create() throws Exception;

    public static Processor getProcessor(String product) throws Exception {
        ProcessorFactory factory = valueOf(product);
        return factory.create();
    }

    private String product;

    private ProcessorFactory(String product) {
        this.product = product;
    }
 }

现在当我尝试打电话时

ProcessorFactory.getProcessor("ap");

它抛出上述异常。有什么想法吗?

最佳答案

尝试 ProcessorFactory.getProcessor("A")

或添加新方法:

public ProcessorFactory getbyProduct(String product) {
   for (ProcessorFactory factory : values()) {
      if (factory.getProduct().equals(processor)) {
         return factory;
      }
   }
   return null; // or throw an exception
}

关于java - Enum 中没有枚举 const 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268118/

相关文章:

具有多个值的枚举中的 java.lang.ExceptionInInitializerError

Swift - 枚举返回错误的值类型

java - android Java哈希表无法存储某些字符

java - 将 HashMap 存储在 SD 卡上

java - Jackson 未正确反序列化 SetValuedMap

java - 设置一个 DTO 对象,它有一个数组作为实例变量

java - int 枚举模式有什么用?

c++ - 以通用方式选择有效的随机枚举值

objective-c - 如何在 Objective-C 中使用 Swift 字符串枚举?

java - 新的 Operator 和 String 在这个程序中起什么作用?