Ras*_* SN 2 java generics predicate
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 */
}
Run Code Online (Sandbox Code Playgroud)
什么是第一<U>前Predicate<U>是什么意思?
这是该方法的通用类型.例如,一些不太复杂的东西:
public static <U> void doSomething(U u) {
System.out.println(u);
}
Run Code Online (Sandbox Code Playgroud)
您可以在Java中参数化任何您想要的函数,就像您使用Classes一样.它不仅适用于静态方法,也适用于实例方法.您可以像这样调用函数:
<String>doSomething("hello");
<Integer>doSomething(42);
Run Code Online (Sandbox Code Playgroud)
最棒的是,在使用泛型方法时,Type Inference在Java中运行得非常好,所以你可以像这样调用上面的函数:
doSomething("hello,world");
doSomething(42);
Run Code Online (Sandbox Code Playgroud)
没有告诉编译器你正在使用什么类型.