为未知类型的枚举器对象设置值

Set value for enumerator object of unknown type

假设我们有很多类型 A、B 等的枚举。:

public enum A {SOME, STUFF}
public enum B {OTHER, STUFF}
....

现在,我们得到了一个枚举类型未知的对象。有没有办法设置它的值?我知道 Java 是一种静态类型语言,但也许有解决方法?

我试过类似的东西:

 public Enum getStuff(Enum unknownEnum, String value) {
     try {
         return Enum.valueOf(unknownEnum.getClass(), value);
     } catch (IllegalArgumentException e) {
         return null;
     }

 }

但这行不通,因为 valueOf 需要强类型,对吧?您知道如何在 Java 中执行此操作吗?

您应该改用 Enum.getDeclaringClass() 方法:

public boolean setStuff(Enum unknownEnum, String value) {
     try {
         unknownEnum = Enum.valueOf(unknownEnum.getDeclaringClass(), value);
     } catch (IllegalArgumentException e) {
         return false;
     }
     return true;
 }