[英]How Can I create a dynamic reference to a Constant?
I want to make a dynamic call to get a Constant from Constants.java based on the field Name?我想根据字段名称进行动态调用以从 Constants.java 获取常量?
Ex.前任。
public class Constants {
public static final String FIELD1 = "field1";
public static final String FIELD2 = "field2";
}
And how can I get value based on the field paramter?以及如何根据字段参数获得价值?
private String getConstant(String field){
//field parameter can be many values for field paramter not just Field1 or Field2
return Constant.field;
}
You need to read about reflection mechanism.您需要阅读有关反射机制的信息。 Try this:尝试这个:
private String getConstant(String field) throws NoSuchFieldException, IllegalAccessException {
// one field only:
return Constants.class.getField(field).get(null);
}
Look like you need an enum
(which are similar to constants):看起来你需要一个enum
(类似于常量):
public enum Constant {
FIELD1("field1"),
FIEL21("field2"),
// etc
;
private String str;
Constant(String str) {
this.str = str;
}
public String getStr() {
return str;
}
}
Then to get the String:然后获取字符串:
private String getConstant(String field) {
return Constant.valueOf(field).getStr();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.