Как задать ввод в качестве имени для переменной в Java?

#java #variables #input

#java #переменные #ввод

Вопрос:

 System.out.print(">> ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
  

Я хотел бы назвать переменную (double input=new double[5];) именем, которое программа получает из BufferedReader. Как это сделать?

Комментарии:

1. Для чего вам это нужно?

Ответ №1:

Вы не можете этого сделать. Переменные определяются во время компиляции. И вам это не нужно — как бы вы получили доступ к переменным с динамическими именами?

Вы можете использовать a Map<String, double[]> для сопоставления строки с двойным массивом. map.put(name, array) а затем map.get(name) выдаст вам массив.

Комментарии:

1. Нет. Генерация кода и обработка байтового кода — возможно, если речь идет о полях. Но с локальными переменными это может быть практически невозможно (не пробовал, но я бы не стал)

2. определенно манипулирование байтовым кодом, проверка javassit. Не знаю, почему вы хотели бы это сделать.

3. Javaassist также позволяет выполнять локальные изменения. Но, конечно, не уверен, зачем вам это нужно. Если только вы не пытаетесь сделать что-то вроде интерактивной консоли. Как irb или что-то в этом роде.

Ответ №2:

Нет, вы не можете. Это было бы эквивалентно изменению исходного кода во время выполнения. Зачем вам вообще это нужно делать?