老师您好 我有个疑问,这些Stream的函数式编程接口为什么泛型非得<? super T>
来源:3-11 实战:常用终端操作演示之匹配

Panda_io
2020-12-05
老师您好 我有个疑问,这些Stream的函数式编程接口为什么泛型非得<? super T>,这里用不就够了吗是吧老师
<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);
boolean allMatch(Predicate<? super T> predicate);
写回答
1回答
-
是这样,Stream出现的目的是解决不同类型集合操作的问题,为了尽量适配到所有的集合类型以及集合中元素的类型,所以使用泛型来定义接口,目的就是既对类型做了约束,又能最大限度的适配所有集合。关于泛型的知识点,可以找一本基础的Java数据看一下,可以加深理解。所有的框架内部都会用到泛型,来处理常见的类型约束问题。
012020-12-06
相似问题