Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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泛型:无法转换<;X>;进入<;?扩展X>;_Java_Generics - Fatal编程技术网

Java泛型:无法转换<;X>;进入<;?扩展X>;

Java泛型:无法转换<;X>;进入<;?扩展X>;,java,generics,Java,Generics,使用Java 10.0.2+13、Gradle 4.9和Guava 26.0-jre构建以下代码会输出此错误: 错误: argument mismatch; bad return type in method reference Iterator<Entry<String,ImmutableMap<Path,String>>> cannot be converted to Iterator<Entry<? extends String,? e

使用Java 10.0.2+13、Gradle 4.9和Guava 26.0-jre构建以下代码会输出此错误:

错误:

argument mismatch; bad return type in method reference

Iterator<Entry<String,ImmutableMap<Path,String>>>

cannot be converted to

Iterator<Entry<? extends String,? extends ImmutableMap<Path,String>>>
参数不匹配;方法引用中的返回类型错误
迭代器
无法转换为

迭代器也许这并不能直接回答您的问题,但使用
收集器是否不是一个选项

像这样:

ImmutableMap<String, ImmutableMap<Path, String>> im = m.entrySet().stream()
        .collect(ImmutableMap.toImmutableMap(
                Map.Entry::getKey, e -> ImmutableMap.copyOf(e.getValue())
        ));

谢谢。这是可行的,尽管我仍然想知道为什么
不能满足
,这是因为嵌套的通配符(
流)
ImmutableMap<String, ImmutableMap<Path, String>> im = m.entrySet().stream()
        .collect(ImmutableMap.toImmutableMap(
                Map.Entry::getKey, e -> ImmutableMap.copyOf(e.getValue())
        ));
ImmutableMap<String, ImmutableMap<Path, String>> im = ImmutableMap.copyOf(
        m.entrySet().stream()
                .<Map.Entry<? extends String, ? extends ImmutableMap<Path, String>>>map(e -> immutableEntry(e.getKey(), ImmutableMap.copyOf(e.getValue())))
                ::iterator
);