我正在研究Optional.map
的实现,即:
public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
Objects.requireNonNull(mapper);
if (!isPresent())
return empty();
else {
return Optional.ofNullable(mapper.apply(value));
}
}
什么是public<U>
?为什么在访问级别修饰符之后指定泛型?
为什么不这样声明方法?
public Optional<U> map(Function<? super T, ? extends U> mapper) {
答案 0 :(得分:2)
这是方法的通用规范。 U
不是来自类的,但是相同的方法可以采用任何类型的映射器Function
,并将为此返回适当的Optional<U>
。