我有一个自定义类custom
。
public class Custom {
private Long id;
List<Long> ids;
// getters and setters
}
现在我有了列表
List<Custom> customs = Collections.emptyList();
Stream<Long> streamL = customs.stream().flatMap(x -> x.getIds().stream());
List<Long> customIds2 = streamL.collect(Collectors.toList());
Set<Long> customIds3 = streamL.collect(Collectors.toSet());
现在我将第2行和第3行合并为一行,如下所示。
List<Long> customIds = customs.stream().flatMap(x -> x.getIds().stream()).collect(Collectors.toSet());
现在,这段代码没有编译,我得到了下面的错误-
error: incompatible types: inference variable R has incompatible bounds
List<Long> customIds = customs.stream().flatMap(x -> x.getIds().stream()).collect(Collectors.toSet());
^
equality constraints: Set<Long>
upper bounds: List<Long>,Object
where R,A,T are type-variables:
R extends Object declared in method <R,A>collect(Collector<? super T,A,R>)
A extends Object declared in method <R,A>collect(Collector<? super T,A,R>)
T extends Object declared in interface Stream
如何转换
列表
这应该可以做到:
Set<Long> collectSet = customs.stream()
.flatMap(x -> x.getIds().stream())
.collect(Collectors.toSet());
您试图将集合
转换为列表
,这是不可能的。
你可以这样做:
List<Custom> customs = Collections.emptyList();
Set<Long> customIdSet = customs.stream()
.flatMap(x -> x.getIds().stream())
.collect(Collectors.toSet()); // toSet and not toList
你得到一个编译器错误的原因是,你使用了一个不正确的收集器
返回一个列表,而不是一个Set,这是你的理论收益类型,因为你把它分配给一个变量的Set
我有一个树对象,它包含树对象的子对象(HashMap),等等 我需要按numericPosition变量筛选对象 例如: 在这种情况下,我应该得到一个树对象过滤的数字位置 树类 以防 我得到这个错误:错误:不兼容类型:推断变量R具有不兼容的边界 我一直在遵循这个例子,但它对我不起作用。https://www.mkyong.com/java8/java-8-filter-a-map-examples
错误:(65,52)java:不兼容类型:推理变量U的边界不兼容等式约束:akka。http。javadsl。模型HttpResponse下限:com。我的演员。聊天演员。聊天信息 下面这行代码显示了错误: 这里是HttpResponse是Akka Http的。 我不知道它在说什么。解决它的方法应该是什么?
JDK 1.8 设置和收集。 我想数一数那个十字路口 我试试这个: 但我有一个错误:
我有以下代码 出于某种原因,它抛出了以下编译错误 Solution.java:11:错误:不兼容类型:推断变量T具有不兼容的边界List=Arrays.asList(A);^相等约束:整数下界:int[]其中T是类型变量:T扩展方法中声明的Object asList(T...) 我假设这是一个Java8功能但我不知道如何解决这个错误
这是我的分类程序类,我试图在其中实现一些算法。 但是,在编译时,我得到了以下错误: 必需:AbstractList found:ArrayList原因:推理变量T具有不兼容的边界等式约束:ShipDetail上限:Comparable,其中T是类型变量:T扩展了方法QuickSort(AbstractList)中声明的Comparable
问题内容: 我有以下代码 由于某种原因,它会引发以下编译错误 Solution.java:11:错误:不兼容的类型:推断变量T具有不兼容的边界List list = Arrays.asList(A); ^等式约束:整数下限:int []其中T是类型变量:T扩展了在方法asList(T …)中声明的对象 我假设这是Java 8功能,但是我不确定如何解决该错误 问题答案: 期望可变数量的。不是,而是,