public <T extends AbstractPredicate> Set<T> extractPredicate(Class<T> clazz) {
Objects.requireNonNull(clazz);
if (CollectionUtils.isEmpty(expressions)) {
return Collections.emptySet();
}
return expressions.stream().map(expression -> expression.extractPredicate(clazz)).flatMap(Collection::stream)
.filter(Objects::nonNull).map(clazz::cast).collect(Collectors.toSet());
}
expressions.stream().map(expression -> expression.extractPredicate(clazz)).flatMap(Collection::stream)
.filter(Objects::nonNull).map(clazz::cast).collect(Collectors.toSet());
这行代码一直报错 Incompatible types. Found: 'java.lang.Object', required: 'java.util.Set'。但是编译又没问题。 idea版本 2020.2 。jdk1.8 配置了lamdba支持
求大神指导这是怎么回事。。。。。。
可能是泛型擦除的问题,如果你不用 T,写成具体类型,看看是不是不报错