有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取在另一个枚举中声明的所有嵌套枚举的集合或数组?

对于测试支持,我有以下枚举。它是关于I18n

public enum PersonaFieldI18n {

    NOTHING_TO_DO;

    private PersonaFieldI18n(){

    }

    public enum English {

        ID("Id"),
        NOMBRE("Name"),
        APELLIDO("Last Name"),
        FECHA("Date");

        private String field;

        private English(String field){
            this.field = field;
        }

        public String getField() {
            return field;
        }

    }

    public enum Spanish {

        ID("Id"),
        NOMBRE("Nombre"),
        APELLIDO("Apellido"),
        FECHA("Fecha");

        private String field;

        private Spanish(String field){
            this.field = field;
        }

        public String getField() {
            return field;
        }

    }

    public enum Portuguese {

        ID("Id"),
        NOMBRE("Nome"),
        APELLIDO("Sobrenome"),
        FECHA("Data");

        private String field;

        private Portuguese(String field){
            this.field = field;
        }

        public String getField() {
            return field;
        }

    }
}

如果执行PersonaFieldI18n.values(),它只返回NOTHING_TO_DO

使用每个嵌套枚举获取集合或数组的方法(如果存在)是什么

我需要一种方法来调用PersonaFieldI18n枚举中定义的方法,该方法返回以下元素:

  • PersonaFieldI18n.English
  • PersonaFieldI18n.Spanish
  • PersonaFieldI18n.Portuguese

如您所见,上面显示的每个元素都是PersonaFieldI18n枚举的嵌套枚举

这样做可能吗?怎样最好的实现是什么


共 (1) 个答案

  1. # 1 楼答案

    正如@Kevin所说,嵌套枚举实际上是PersonalFieldi18n的内部类,所以可以通过反射获得它们

    声明如下:

    Class<?>[] classes = PersonaFieldI18n.class.getDeclaredClasses();