检索与字符串

时间:2017-07-28 10:15:44

标签: java dictionary

我在一个类中有一堆映射,我想制作一个通用方法来检索与ID匹配的特定映射。 类似的东西:

private Map map1;
private Map map2;
private Map map3;


public Map getMap(String id){
  return mapX;
}

当我将方法称为:

getMap("map1");

它将返回map1。 无论如何我都可以在不创建地图地图的情况下进行此转换?

4 个答案:

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