Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 为什么在执行flatmap()调用时会出现编译错误?_Java 8_Java Stream_Flatmap - Fatal编程技术网

Java 8 为什么在执行flatmap()调用时会出现编译错误?

Java 8 为什么在执行flatmap()调用时会出现编译错误?,java-8,java-stream,flatmap,Java 8,Java Stream,Flatmap,假设我有以下目标: public class DaylyData { private Date date; private List<Integer> numersList; // standard getters/setters public Map<Integer, Date> getIntToDate() { Map<Integer, Date> resultMap = new HashMap<>(); for(Inte

假设我有以下目标:

public class DaylyData {

private Date date;
private List<Integer> numersList;

// standard getters/setters

public Map<Integer, Date> getIntToDate() {
    Map<Integer, Date> resultMap = new HashMap<>();
    for(Integer number : getNumersList()) {
        resultMap.put(number, getDate());
    }
    return resultMap;
}

如果我将结果分配给
,我将得到
类型不匹配:无法从映射转换到流,
flatMap
方法是
Map
的特例,用于展平嵌套的
可选的
,以及其他一元工具

在您的情况下,您没有提供返回
流的函数,因此它不能用作
flatMap
param

您的函数可以与标准的
map()
配合使用,不过:

resultList.stream()
  .map(entity -> entity.getIntToDate()); // no compilation errors
您可以通过将结果包装到
实例中来实现示例,但这并不比上面的示例有任何优势-仅出于教育目的这样做是有意义的:

resultList.stream()
   .flatMap(entity -> Stream.of(entity.getIntToDate())); // no compilation error

这是“每天”而不是“每天”

resultList.stream()
   .flatMap(entity -> Stream.of(entity.getIntToDate())); // no compilation error