【问题标题】:Is there a way to set member variables of an instance based on a given string?有没有办法根据给定的字符串设置实例的成员变量?
【发布时间】:2019-09-28 22:23:35
【问题描述】:

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

【问题讨论】:

标签: java


【解决方案1】:

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

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

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

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

【讨论】:

  • 这听起来像是我正在寻找的东西......反射,我会试一试,谢谢。
  • 酷,请接受它作为答案@BlaineLafreniere
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2022-01-07
  • 2013-06-24
  • 2022-12-13
  • 1970-01-01
  • 2019-09-30
相关资源
最近更新 更多