这句话中的第一个<U>是什么意思?

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>是什么意思?

Luk*_*itz 5

这是该方法的通用类型.例如,一些不太复杂的东西:

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)

没有告诉编译器你正在使用什么类型.

这里查看文档.