相关疑难解决方法(0)

什么是PECS(制作人扩展消费者超级)?

我在阅读泛型时遇到了PECS(制片extends人和消费者的super简称).

能否给我一个人解释如何使用佩奇之间解决困惑extendssuper

java generics super pecs bounded-wildcard

680
推荐指数
11
解决办法
9万
查看次数

为什么许多Java Stream接口方法在参数中使用下界通配符而不是通用类型?

许多Java Stream接口方法在参数中使用下界通配符

例如

Stream<T> filter(Predicate<? super T> pred)
Run Code Online (Sandbox Code Playgroud)

void forEach(Consumer<? super T> action)
Run Code Online (Sandbox Code Playgroud)

Predicate<? super T>Predicate<T>这里使用的好处是什么?

我知道,Predicate<? super T>可以将T和超级类型的谓词对象作​​为参数传递给方法,但是我无法想到在特定类型上需要超级类型的谓词的情况?

例如,如果我有一个Stream<Integer>i,则可以将Predicate<Integer>, Predicate<Number>, and Predicate<Object>对象作为参数传递给它的filter方法,但是为什么有人会传递Predicate<Object>over Predicate<Integer>?在这里

使用的好处是<? super T>什么?

java generics java-stream

3
推荐指数
1
解决办法
262
查看次数

标签 统计

generics ×2

java ×2

bounded-wildcard ×1

java-stream ×1

pecs ×1

super ×1