不兼容的java.lang.Float并且无法使用MultiValueMap进行实例化



我是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实用程序。这句话没有错。

最新更新