【发布时间】:2016-04-13 06:48:06
【问题描述】:
public static <U> Predicate<U> isEqualsTo(U u) {
return s -> s.equals(u);
/*Predicate<U> return type
U u is the parameter
s-> s.equals(u) is the lambda expression */
}
Predicate<U> 之前的第一个 <U> 是什么意思?
【问题讨论】:
-
您必须先声明一个类型参数,然后才能使用它。第一个
<U>声明它,Predicate<U>中的第二个和参数类型U使用它。这与像class MyClass<T>这样的类型声明不同,它同时声明和使用T。除此之外,在这种特定情况下,使用U作为参数类型是没有意义的。它也可以与Object一起使用,就像在 Java 8 的Predicate.isEqual(Object)中所做的那样……