我在一个类中有一堆映射,我想制作一个通用方法来检索与ID匹配的特定映射。 类似的东西:
private Map map1;
private Map map2;
private Map map3;
public Map getMap(String id){
return mapX;
}
当我将方法称为:
getMap("map1");
它将返回map1。 无论如何我都可以在不创建地图地图的情况下进行此转换?
答案 0 :(得分:2)
尝试使用反射,例如:
private Map getMap(String id) throws NoSuchFieldException, IllegalAccessException {
getClass().getField("map" + id).get(this);
return map;
}
答案 1 :(得分:2)
地图地图也可以解决这个问题:
Map<String, Map<String, String>> map = new HashMap<>();
map.put("map1", map1);
map.put("map2", map2);
public static Map<String, String> getMap(String name){
return map.get(name);
}
答案 2 :(得分:0)
定义一个字符串Map,Map并将其用作字典
像:
{{1}}
答案 3 :(得分:0)
如果您只有少量地图,那么您可以使用switch语句并重新调整与地图名称匹配的地图,如下面的代码: -
switch (mapName) {
case "map1":
return map1;
break;
case "map2":
return map2;
break;
}
但是如果你有大量的地图,那么最好给它们一些id或名称并使用Map of Map。