错误:java 11升级后,推断的类型不符合下限
将项目从java 8升级到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.
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"