java – 将Map传递给需要Map的方法

前端之家收集整理的这篇文章主要介绍了java – 将Map传递给需要Map的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有以下签名的方法
public static ActionDefinition reverse(String action,Map<String,Object> args)

我有返回以下内容方法

public static Map<String,String> toMap(String value)

有没有什么方法可以将toMap的输出转换为反向使用,例如:

ActionDefinition ad = reverse("Action.method",toMap("param1=value1,param2=value2"));

我需要做点什么

(Map<String,Object>) toMap("param1=value1,param2=value2");

但我无法做到这一点

我也试过以下方法

public static Map<String,String> toMap(String value) {
    Map<String,Object> source = toMap(value);
    Map<String,String> map = new LinkedHashMap<String,String>();

    for(Map.Entry<String,Object> entry: source.entrySet()) {
        map.put(entry.getKey(),(String) entry.getValue());
    }

    return map;
}

但我想由于类型擦除,我得知该方法是重复的…

任何的想法?

编辑

我忘了声明我无法改变反向方法,正如许多人所建议的那样……

解决方法

如果你可以改变你想要的方法
public static ActionDefinition reverse(String action,? extends Object> args)

猜你在找的Java相关文章