给出一个枚举
public enum Country {
INDIA("New Delhi"),
US("Washinton DC");
private String capital;
private Country(String capital) {
this.capital = capital;
}
// getters & setters
}
给定fieldName“ capital”和Country.class使用反射,如何获得字段值?
只要您知道反射是什么:
Class<?> c = Class.forName("Country");
Object[] objects = c.getEnumConstants();
for (Object obj : objects) {
Class<?> clzz = obj.getClass();
Field capita = clzz.getDeclaredField("capital");
capita.setAccessible(true);
System.out.println(capita.get(obj));
输出:
New Delhi
Washinton DC
注:如果要访问私有字段,则需要
capita.setAccessible(true);
//。