Есть ли способ установить переменные-члены экземпляра на основе заданной строки? - PullRequest
1 голос
/ 29 сентября 2019

Я хотел бы сделать что-то похожее на следующее ... что-то вроде этого довольно просто в динамических языках, но мне интересно, возможно ли это в 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 Ответ

2 голосов
/ 29 сентября 2019

Возможно, это недоразумение, но вы можете просто использовать

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

Но в более общем смысле вы можете использовать отражение, чтобы установить значения

Field nameFld = Person.class.getDeclaredField("name");
nameFld.setAccessible(true);
nameFld.set(this, memberValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...