使用反射设置枚举字段的值
import java.lang.reflect.Field; enum E0 { A, B//来自 N o w J a v a . c o m - 时 代 Java } enum E1 { A, B } class ETest { private E0 fld = E0.A; } public class EnumTroubleToo {//from N o w J a v a . c o m - 时 代 Java public static void main(String... args) { try { ETest test = new ETest(); Field f = test.getClass().getDeclaredField("fld"); f.setAccessible(true); f.set(test, E1.A); // IllegalArgumentException // production code should handle these exceptions more gracefully } catch (NoSuchFieldException x) { x.printStackTrace(); } catch (IllegalAccessException x) { x.printStackTrace(); } } }