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