我可以将 Map<String, List<Integer>> 转换为 MultiValueMap

我正在尝试将地图转换为多值地图,但出现以下编译异常:


Wrong 1st argument type. Found: java.util.Map<java.lang.String,java.util.List<java.lang.String>>, required: org.springframework.util.MultiValueMap<java.lang.String,java.lang.String> less...  Inspection info:


这是结构: Map<String, List<String>> tradersTradeMap-> MultiValueMap<String, String>tradersTradeMap


class Trade {


  public String getTraderNameAfterProcesing (MultiValueMap<String, String> 

      tradersTradeMap){

      ..... // SOme code goes here

   }


}


class Customer {


private Trade trade;


public String Method1(){

   Map<String, List<String>> traderTradeMap = new HashMap<>();

   traderTradeMap.put("TraderA", Arrays.asList("SPOT","BLOCK","FORWARD"));

   traderTradeMap.put("TraderB", Arrays.asList("SPOT","BLOCK"));


   trade = new Trade();

   trade.getTraderNameAfterProcesing(traderTradeMap); // This line is giving exception 


}


}

有什么简单的方法吗?


慕盖茨4494581
浏览 369回答 2
2回答

慕神8447489

如果您不关心MultiValueMap使用哪种类型,最简单的方法是使用LinkedMultiValueMap的复制构造函数,它需要一个Map<K, List<V>>您的示例中的一个问题是您试图提供原始地图和MultiValueMap相同的变量名称。因此,如果您改为执行以下操作:MultiValueMap<String,&nbsp;String>&nbsp;TradersTradeMVMap&nbsp;=&nbsp;new&nbsp;LinkedMultiValueMap<>(TradersTradeMap);

紫衣仙女

是的,Spring 以 的形式提供了一个方便的包装器CollectionUtils.toMultiValueMap(),它保留了原来Map使用的包装器。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java