集册 Java实例教程 使用反射设置枚举字段的值

使用反射设置枚举字段的值

欢马劈雪     最近更新时间:2020-01-02 10:19:05

723
使用反射设置枚举字段的值

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();

        }

    }

}


展开阅读全文