我想要做的是使用字符串访问存储在一个类中的变量。例如我有
public class Values {
public static boolean enabled;
}
然后在项目的不同部分,我有对象和带有字段名称的字符串。如何获取和设置字段的值?
我想要做的是使用字符串访问存储在一个类中的变量。例如我有
public class Values {
public static boolean enabled;
}
然后在项目的不同部分,我有对象和带有字段名称的字符串。如何获取和设置字段的值?
如果您将名称作为字符串,则应使用反射:
import java.lang.reflect.Field;
public class Values {
public static boolean enabled = false;
public static void main(String[] args) throws Exception {
Values v = new Values();
Field field = v.getClass().getField("enabled");
field.set( v, true );
System.out.println( field.get(v) );
}
}
Values.enabled = true;
或者
Values.enabled = false;
或者,您可以为该类创建一个静态 getter 和 setter,Values
然后调用这些静态方法。
@Maricio Linhares 的回答非常好;但是,请注意反射非常缓慢。如果您经常这样做,您可能会遇到性能问题。另一种方法可能是使用地图。代码如下
public class Values {
public static Map<string,bool> variableMap;
public static void main(String[] args) throws Exception {
// adding a 'variable'
variableMap = new YourFavoriteMapImplementation();
variableMap.put("enabled",true);
// accessing the 'variables' value
bool val = variableMap.get("enabled");
System.out.println(val);
}
}