错误:java 11升级后,推断的类型不符合下限

错误:java 11升级后,推断的类型不符合下限,java,maven,generics,openjdk-11,Java,Maven,Generics,Openjdk 11,将项目从java 8升级到java 11后,我随机发现以下错误: incompatible types: inferred type does not conform to lower bound(s) [ERROR] inferred: java.lang.String [ERROR] lower bound(s): java.lang.Object,java.lang.String 我得到的代码是: import java.util.Arrays; import java.

将项目从java 8升级到java 11后,我随机发现以下错误:

incompatible types: inferred type does not conform to lower bound(s)
[ERROR]     inferred: java.lang.String
[ERROR]     lower bound(s): java.lang.Object,java.lang.String
我得到的代码是:

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Test {

    public static void main(String[] args) {
        List<String[]> list = Arrays.asList(new String[] {"a", "a", "a"}, new String[] {"b", "a", "b"});
        final Map<Integer, List<String[]>> dynamicFilesByPosition = Map.of(1, list);
        final Boolean result = dynamicFilesByPosition.values().stream()
                .map(strings -> {
                    final Map<String, Boolean> multipleDynamicTypesOnSamePosition = strings.stream()
                            .map((String[] value) -> value[0])
                            .collect(
                                    Collectors.groupingBy(
                                            Function.identity(),
                                            Collectors.collectingAndThen(Collectors.toSet(), set -> set.size() > 1)
                                    )
                            );
                    return multipleDynamicTypesOnSamePosition.size() > 1;
                })
                .filter(Boolean::booleanValue)
                .findAny()
                .orElse(false);
        System.out.println(result);
    }
}

“随机”是什么意思?mvn clean install上30-40%的时间是在使用->a而不是函数时得到的。identity()我不知道错误,也不知道在使用函数类型时得到的错误:Function.identity(),但Intellij想删除它。另外,过滤器(条件)/findAny/orElse将更容易写成
anyMatch(条件)
.Thx,这不是真正的代码,只是将其作为终端操作添加。你说的“随机”是什么意思?在mvn clean install上,30-40%的时间是在使用->a而不是函数时得到的。identity()我不知道错误,而且在使用type作为函数时也不知道:Function.identity()但是Intellij想删除它。顺便说一句,过滤器(条件)/findAny/orElse将更容易写成
anyMatch(条件)
。Thx,这不是真正的代码,只需将其作为终端操作添加即可。
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/apache-maven-3.6.3
Java version: 11.0.7, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
Default locale: en_RO, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.3", arch: "x86_64", family: "mac"