2015-06-21 3 views
-4

Возможно ли на Java что-то вроде этого? :Создать время выполнения переменной Java

  • System.out .... -> запросить строку

  • магазин это струнный

  • Создайте переменную с именем этой строки

Большое спасибо!

+0

Как может 'System.out ...' запрашивать строку? – Blip

+0

Нет, Java не поддерживает динамическое именование. Вместо этого используйте карту. – Maroun

+0

@Blip OP означает «пожалуйста, вставьте строку». – Maroun

ответ

1

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

Однако вы можете использовать Map, что, вероятно, делает то, что вы хотите. Метод get будет искать запись, а метод put установит запись. Пример:

Map<String, Integer> myMapOfThings = new HashMap<>(); 

String nameOfThing = /* ... get a string from the user somehow here ... */; 
myMapOfThings.put(nameOfThing, 2); 

System.out.println(myMapOfThings.get(nameOfThing)); // prints 2 
+0

Возможно, какой-то тщеславный способ использует отражение, но зачем кому-то хотеть пройти через эту проблему ... –

+0

ok спасибо! теперь, еще одна вещь, вы можете сделать только с одним инстанцированным хэшмапом более одного? : 'myMap.put (имя, 2); myMap.put (name2,3); 'да, правильно? Благодаря! – hadolfo

+0

@hadolfo Да. И он запомнит оба, и вы можете получить их в любой момент. Вид вроде массива со строками как индексы. – immibis

Смежные вопросы