Как в java установить значение переменной с динамическим именем?

есть такой код:
double var1;
String var2;
String var3

public bool setValue(String key, String value) {
        /* ??? */
}

могу ли я каким-то образом, вызвав функцию setValue("var1", "0"); записать значения в переменную var1 без использования конструкций типа if(key == "var1") var = value; и switch {...} ?
Т.е. нужно проверить объявлена ли переменная в классе. Если да, то определить ее тип, перевести строку в этот тип и записать значение. Если нет, вернуть false.
  • Вопрос задан
  • 427 просмотров
Решения вопроса 1
смотрите в строну Reflection.
public bool setValue(String key, String value) {
        try {
            declaredField = this.getClass().getDeclaredField("var");
            declaredField.set(this,value);
        } catch (NoSuchFieldException e) {
            return false
        }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы