有没有一种方法可以根据给定的字符串设置实例的成员变量?

时间:2019-09-28 22:23:35

标签: java

我想做类似以下的事情……在动态语言中,这样的事情很容易,但是我想知道在Java中是否有可能。

public class Person {
    private String name;

    public void setMember(String memberName, String memberValue) {
        // look at memberName, see that it is "name", and then set this.name to whatever memberValue is.
    }
}

1 个答案:

答案 0 :(得分:2)

可能会造成误解,但您可以使用

if ("name".equals(memberName)) this.name = memberValue;

但是从更一般的意义上讲,您可以使用反射来设置值

Field nameFld = Person.class.getDeclaredField("name");
nameFld.setAccessible(true);
nameFld.set(this, memberValue);