java这句话的第一个<U>是什么意思?
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>
是什么意思
你可以在下面搜索框中键入要查询的问题!
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>
是什么意思
# 1 楼答案
第一个
<U>
声明方法的泛型类型U
。它是替换静态类型定义的占位符有了这个泛型函数,您现在可以使用任何类型的输入,因为您的输入参数
u
的类型是U
,我们的泛型类型占位符这个泛型函数的输出被定义为另一个泛型对象,一个
Predicate<>
的实例,但使用我们用作输入类型的相同泛型类型U
进行参数化# 2 楼答案
这是该方法的通用类型。例如,一些不那么复杂的东西:
您可以在Java中对任何函数进行参数化,就像对类进行参数化一样。它不仅适用于静态方法,也适用于实例方法。您可以这样调用函数:
最棒的是,当使用泛型方法时,类型推断在Java中非常有效,因此可以像这样调用上述函数:
不告诉编译器你使用的是什么类型
查看文档here.
# 3 楼答案
它表示该方法是泛型的,因此可以在调用时返回指定的任何类型
见https://docs.oracle.com/javase/tutorial/java/generics/methods.html
# 4 楼答案
假设你有
那么返回类型必须与您传递的相同