我試圖做到以下幾點:如果我在編譯時不知道類,我該如何獲得Enum的值?
Class<?> cls = unknownClass;
if(cls.isEnum()){
@SuppressWarnings("unchecked")
Class<? extends Enum<?>> enumClass = (Class<? extends Enum<?>>) cls;
Object val = Enum.valueOf(enumClass, "NAME1");
}
,但我得到了以下錯誤:
Bound mismatch: The generic method valueOf(Class<T>, String) of type Enum<E> is
not applicable for the arguments (Class<capture#5-of ? extends Enum<?>>, String).
The inferred type capture#5-of ? extends Enum<?> is not a valid substitute for
the bounded parameter <T extends Enum<T>>
誰能告訴我什麼,我做錯了什麼?
這不工作(或者是它只是我的編譯器)?:) – dacwe 2011-03-10 16:17:47
@dacwe:它可以在* my *編譯器上工作 - 但是您還沒有用什麼方式說*它不起作用。我將展示一個簡短但完整的示例... – 2011-03-10 16:19:19
啊,對不起,它不能編譯。 '類> cls = SomeEnum.class; Object val = Enum.valueOf(cls,「NAME1」);'和我得到一個類似於'Bound bound mismatch'的提問者。 – dacwe 2011-03-10 16:21:36