我有一个字符串refid = "asdkjdndkdkkd"
和另一个refid = "jsdjnfrejnfkn"
。如何将refid
用作列表名称的一部分?
例如:
list<String> list_+refid
答案 0 :(得分:3)
实现此目的的唯一方法是编写在运行时发出新字节码的代码或其他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
答案 1 :(得分:-1)
可以使用string concatenation and reflection访问某个字段,但不能创建一个字段。但是,您通常需要创建多个这样的字段,因此从字符串到列表的map映射看起来就像您在此处使用的那样。示例:
Map<String,List<String>> map = new HashMap<>();
map.put(refid, new ArrayList());
map.get(refid)