出于示例目的,我从jenkov那里窃取了以下枚举。
public enum Level {
HIGH (3,33,333),MEDIUM(2,22,222),LOW (1,11,111);
}
因此几乎没有数字可以导致相同的枚举类型,因此1和11都将返回LOW。 我已经暗示了这一点。
实际问题是,枚举值(如 1、11、111 那样的值)可以动态吗? 似乎这里需要的列表会随着时间而变化,最好的解决方案是在启动时加载新列表。
所以理想的解决方案应该是
public enum Level {
HIGH (listHigh),MEDIUM(listMedium),LOW (listLow);
}
这些列表将在启动时由@Configuration @Bean
但是枚举是静态的,即使使用static int array[] = { 1,2,3,4,5 };
我得到非法的前向参考。
我知道我省略了很多代码,但是我认为问题很简单。 只要我有办法动态加载枚举的值,我就可以隐含该解决方案的所有其他内容。
请询问我在这里可能错过的任何信息,谢谢