我在阅读泛型时遇到了PECS(制片extends人和消费者的super简称).
能否给我一个人解释如何使用佩奇之间解决困惑extends和super?
我读过O'Reilly的书,因为我开始了解这个获取原则.
extends仅从结构中获取值时使用通配符.super仅在将值放入结构时使用通配符.- 当你们想要从一个结构中获取和放置时,不要使用通配符.
例外情况是:
extends除了null属于每个引用类型的值之外,您不能将任何内容放入使用通配符声明的类型中.
super除了type的值之外,您不能从使用通配符声明的类型中获取任何内容Object,这是每种引用类型的超类型.
任何人都可以帮助我深入探索这条规则吗?如果可能的话,请将它们分层.
在Java 8中,提供了许多函数式接口,例如UnaryOperator、BinaryOperator和Function等。
代码,
UnaryOperator<Integer> uOp = (Integer i) -> i * 10;
BinaryOperator<Integer> bOp = (Integer i1, Integer i2) -> i1 * i2 * 10;
Run Code Online (Sandbox Code Playgroud)
总是可以使用函数编写如下,
Function<Integer, Integer> f1 = (Integer i) -> i * 10;
BiFunction<Integer, Integer, Integer> f2 = (Integer i1, Integer i2) -> i1 * i2 * 10;
Run Code Online (Sandbox Code Playgroud)
那么,这些操作界面有什么用呢?他们实现的目标是否与使用 Function 实现的目标不同?