У меня есть строка, refid = "asdkjdndkdkkd"
, а другая refid = "jsdjnfrejnfkn"
. Как я могу использовать refid
как часть имени списка?Дайте имя списку, используя строковое содержимое
Например, что-то вроде:
list<String> list_+refid
У меня есть строка, refid = "asdkjdndkdkkd"
, а другая refid = "jsdjnfrejnfkn"
. Как я могу использовать refid
как часть имени списка?Дайте имя списку, используя строковое содержимое
Например, что-то вроде:
list<String> list_+refid
Единственный способ добиться этого путем написания кода, который излучает новый байткод во время выполнения, или другие metaprogramming подходы, как объяснено в this thread.
Если у вас есть очень веские причины, чтобы сделать это, вы можете придерживаться HashMap (или другой карты):
HashMap<String, List<String>> map = new HashMap<String, List<String>>();
// ...
List<String> list;
if (map.containsKey(refId))
list = map.get(refId);
else
map.put(refid, list = new ArrayList<String>());
// work with list here
Он хочет назвать ссылку динамически на основе идентификатора ссылки ... Ваш код этого не делает. – TheLostMind
Я отредактировал его, чтобы объяснить, почему я рекомендую HashMap. – Domi
@LostMind да, я хочу дать имена динамически. – user2981726
Можно получить доступ к определенной области с помощью string concatenation and reflection, но не создать его. Однако у вас обычно есть несколько полей, которые вы хотите создать таким образом, поэтому сопоставление map из строки в список похоже на то, что вы будете использовать здесь. Пример:
Map<String,List<String>> map = new HashMap<>();
map.put(refid, new ArrayList());
map.get(refid)
Я уже использую карту для этого, но проблема с этим решением заключается в том, что содержимое ключа arraylist при изменении, т.е. у меня есть 1000 refid, которые я взяв в качестве ключей на моей карте, а соответствующие значения - список массивов. Мне нужно закодировать содержимое файла и обновить содержимое списка массивов с каждой итерацией, поэтому я должен дать им имена, чтобы я мог получить к ним доступ в следующих итерациях – user2981726
Вы можете получить доступ к любым значениям на карте в будущих итерациях, попробуйте сделать map.get (refid), который вернет список, который может использоваться точно так же, как 'list_ + refid' или любой другой список. Здесь может быть полезен некоторый фактический пример кода. – user60561
Почему вы были остановлены?: -/ – Boann
Вы хотите динамически генерировать ссылочное имя ??? – TheLostMind
@ TheLostMind похоже. Это хороший вопрос - не знаю, почему кто-то мог бы понизить/закрыть голосование. Он мог бы сделать это, используя отражение, но я не уверен, что знаю ответ на этот вопрос. – alfasin
okey просто я не получаю вашу настоящую проблему. Можете ли вы просто рассказать мне больше о том, чего вы хотите, пожалуйста, чтобы мы могли помочь u /. :) – Krishna