我已經看到許多StackOverflow帖子關於如何動態獲取枚舉的值,因爲你知道編譯時Enum類,但我試圖動態加載枚舉類和枚舉值,我沒有看到如何做到這一點。動態加載Java枚舉類和枚舉常量
我試圖做這樣的事情:
public interface Config {
public ConfigValue getConfigValue();
}
public enum AwsConfig implements Config {
ACCESS_KEY_ID(new ConfigValue(...)),
API_URL(new ConfigValue(...))
...
public static String getName() { return "AwsConfig"; }
...
}
public enum PaginatorConfig implements Config {
DEFAULT_PAGE_SIZE(new ConfigValue(...)),
...
public static String getName() { return "PaginatorConfig"; }
...
}
public void myMethod(ConfigValue configValue) {
String enumClassName = configValue.getName();
String enumConstantKeyName = configValue.getKey();
// I now have the enum's class name as enumClassName
// I now have the enum constant's name as enumConstantKeyName
// How can I dynamically get the enum constant's configValue based on the enumClassName and enumConstantKeyName?
// I know I can get the value dynamically if I know the Enum constant...
ConfigValue configValue = AwsConfig.valueOf("API_URL")
// But I wish I could do something like this...
ConfigValue configValue = Enum.valueOf("AwsConfig", "API_URL");
}
所以你想使用反射? – msrd0 2014-09-19 16:48:34