Поддерживает ли Java переменные переменные?

Как в PHP:

<?php
$a = 'hello';
$$a = 'world';

echo $hello;
// Prints out "world"
?>

Мне нужно создать неизвестное количество HashMaps на лету (каждое из которых помещено в arraylist). Пожалуйста, скажите, есть ли более простой или более Java-ориентированный способ. Спасибо.

Ответы

Ответ 1

Лучшее, что вы можете сделать, это создать HashMap из HashMaps. Например:

Map<String,Map<String,String>> m = new HashMap<String,Map<String,String>>();
// not set up strings pointing to the maps.
m.put("foo", new HashMap<String,String>());

Ответ 2

Java не поддерживает то, что вы только что сделали в PHP.

Чтобы сделать что-то подобное, вы должны просто сделать List<Map<>> и сохранить там HashMap. Вы можете использовать HashMap для HashMaps.

"переменная переменная" в Java - это массив или список или некоторая структура данных с разным размером.

Ответ 3

Нет. Вы бы сделали что-то вроде

List<Map<String,String> myMaps = new ArrayList<Map<String,String>>()

а затем в вашем цикле вы сделаете следующее:

Map<String,String> newMap = new Hashtable<String,String>();
//do stuff with newMap
myMaps.add(newMap);

Ответ 4

Его не вызываемые переменные в java.

Его называют отражением.

Посмотрите на java.lang.reflect документы пакета для деталей.

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

Bestoes,

JRH.

Ответ 5

Вы не можете!

Нет прямого пути к этому. Массивы, отражение и т.д. Могут помочь.