使用字符串内容为列表命名

时间:2013-11-28 04:21:35

标签: java list

我有一个字符串refid = "asdkjdndkdkkd"和另一个refid = "jsdjnfrejnfkn"。如何将refid用作列表名称的一部分?

例如:

list<String> list_+refid

2 个答案:

答案 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)