Java 有没有办法根据给定的字符串设置实例的成员变量?
我想做一些类似以下的事情。。。这在动态语言中是很容易的,但我想知道在Java中是否可能Java 有没有办法根据给定的字符串设置实例的成员变量?,java,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 me
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);
是的,那会管用的,但是我必须为每个成员的名字打上它。。。我试图避免重复输入类似的代码。可能重复的代码。您确定您不是在寻找类似于
地图的东西吗?
?这听起来像是我在寻找的。。。反思,我会尝试一下,谢谢。酷,请接受它作为答案@BlaineLafreniere