Динамические имена переменных Java

Как я смогу получить значение переменной с динамическим именем

Для примера у меня есть список констант

public class Constant{ public static final String S_R = "Standard(240)"; public static final String S_W = "Standard(180)"; public static final String L_R = "Large(360)"; public static final String L_W = "Large(280)"; } 

На основе базы данных я строю имя переменной

 String varName = "S" + "_" +"R"; // This can be S_R , S_W , L_R or L_W String varVal = // How do i get value of S_R 

Используйте обычный HashMap с именами переменных как строки против их значений. Или используйте EnumMap с enumsми как ключ и ваше значение как значения. AFAIK, это самое близкое, что вы можете получить при использовании Java. Конечно, вы можете возиться с размышлениями, но IMO подход к карте гораздо логичнее.

Вы можете использовать Map и найти значение по его ключу.

Еще лучше, вы можете иметь enum :

 public enum Foo { S_R("Standard", 240), S_W("Standard", 180),...; private String type; private String duration; // constructor and getters } 

А затем вызовите Foo.valueOf(name)

(Вы также можете сделать это через reflection – Constants.class.getField(fieldName) а затем вызвать field.get(null) (null для статического). Но это не очень хороший подход.)

Если вы действительно должны это сделать (и это маловероятно), вам придется использовать API-интерфейсы Java «reflection».

  • Какую технику хранения данных Android использовать?
  • Android NDK учебник / руководство для начинающих.
  • notifyDataSetChanged () делает обновление списка и прокручивает подсказки назад
  • Как сделать разделение 2 ints порождать float вместо другого int?
  • Проблемы с https (нет сертификата партнера) в android
  • TCP \ IP-клиент - EHOSTUNREACH (нет пути к хосту)
  • Передача данных с помощью Serializable
  • Можно ли изменить цвет текста в строке на несколько цветов в Java?
  • Заполните поля в веб-просмотре автоматически
  • Использование суперclassа для инициализации объекта подclassа java
  • Сохранять широковещательный приемник после закрытия приложения
  • Interesting Posts

    Интерфейсы для десериализации в JSON.NET

    Как кодировать Base64 на iPhone

    Организация загрузки в Google Chrome

    Проигрыватель Windows Media взял под свой контроль кнопку воспроизведения

    Объединение нескольких файлов WAV с использованием одной команды без дополнительного файла

    Можем ли мы сохранить делегатов в файле (C #)

    Как я могу выйти из Windows Explorer в Windows 8?

    CalledFromWrongThreadException: только исходный stream, создавший иерархию представлений, может касаться представлений

    Как запросить доступные базовые DN на сервере openldap

    Каков правильный синтаксис для исключения содержимого папки, но не самой папки

    jq не работает с именем тега с тире и цифрами

    Преимущества нажатия «Обновить все время» на рабочем столе Windows

    Добавление свойств в модель представления, созданных с помощью плагина отображения Jockout JS

    Добавление руководства к редактору в Visual Studio

    угловой $ q, Как связать несколько обещаний внутри и после цикла

    Давайте будем гением компьютера.