我想做类似以下的事情……在动态语言中,这样的事情很容易,但是我想知道在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.
    }
}

最佳答案

可能是误会,但您可以使用

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


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

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

08-27 12:33