使用变量名称访问并设置静态变量

Chr*_*ris 2 java

我想要做的是使用字符串访问存储在一个类中的变量.比如我有

public class Values {
    public static boolean enabled;
}
Run Code Online (Sandbox Code Playgroud)

然后在项目的不同部分,我有对象和带有字段名称的字符串.如何获取和设置字段的值?

Mau*_*res 8

如果您将名称作为字符串,则应使用反射:

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) );         
    }

}
Run Code Online (Sandbox Code Playgroud)