如何在 UnaryOperator java 8 中使用引用方法

How can I use reference method in a UnaryOperator java 8

目前,我有一个UnaryOperator这样的

UnaryOperator<Object> defaultParser = obj -> obj;

我不知道在这些操作中是否可以使用方法引用。示例:

UnaryOperator<String> defaultParser = String::toString;

但使用通用方式,不只是 String

如果你只是想避免 lambda 表达式,UnaryOperator 有静态 identity() 方法:

UnaryOperator<Object> defaultParser = UnaryOperator.identity();

如果您特别想要一个方法引用(为什么??),您可以在 class

中定义一个方法
public static <T> T identity(T t) {
    return t;
}

那你就可以作为方法参考了:

UnaryOperator<Object> defaultParser = MyClass::identity;

是的,您可以将 UnaryOperator.identity() 用作:

UnaryOperator<Object> defaultParser = UnaryOperator.identity();

用 lambda 表达式定义为

static <T> UnaryOperator<T> identity() {
    return t -> t;
}