我是Java和Spring的新手。当我想在Spring中使用MultiValueMap时,它的报告是MultiValueMap是抽象的,不能实例化,我的代码是这样的:
import java.util.*;
import org.springframework.util.MutliValueMap;
MultiValueMap<String, List<Float>> dataMap = new MultiValueMap< String, List<Float>>();
我把句子改成
MultiValueMap<String, List<Float>> dataMap = new LinkedMultiValueMap<String, List<Float>>();
它报告不兼容的java.util.List<java.lang.Float>无法传输到java.util.List<java.util.List<java.lang.Float>gt;。我使用的是jdku172和Spring MVC library of version 5.2.2 RELEASE Spring library of version 5.2.2RELEASE
如果要将多个floato值与单个键关联,则必须声明类型MultiValueMap<String, Float>
。
类型MultiValueMap
定义为:
public interface MultiValueMap<K,V> extends Map<K,List<V>>
实例化:
MultiValueMap<String, Float> dataMap = new LinkedMultiValueMap<>();
然后
dataMap.add("key1", 1.0f);
dataMap.add("key1", 1.1f);
dataMap.add("key1", 1.2f);
dataMap.add("key2", 2.0f);
dataMap.getFirst("key1"); // 1.0f
dataMap.get("key1"); // List.of("1.0f", "1.1f", "1.2f")
您必须修复包导入。以下是MultiValueMap
的一个使用示例。
import java.util.List;
import java.util.Map;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
public class MultiValueMapExample {
public static void main(String[] args) {
MultiValueMap<String, Float> map = new LinkedMultiValueMap<>();
map.add("Canon", 500.00f);
map.add("Canon", 501.00f);
map.add("Canon", 502.00f);
map.add("Nikon", 550.00f);
map.add("Nikon", 551.00f);
map.add("Nikon", 552.00f);
for (Map.Entry<String, List<Float>> e : map.entrySet()) {
System.out.println(e.getKey() + ": " + e.getValue());
}
}
}
MultiValueMap<字符串,列表>dataMap=新的LinkedMultiValueMap<字符串,列表>((;
这是对的。尝试使用IntelliJ Idea和Spring Boot。这将管理正确的jdk依赖项和spring实用程序。这句话没有错。