目前,我有一个UnaryOperator
这样的人
UnaryOperator<Object> defaultParser = obj -> obj;
我不知道我是否可以在此类操作中使用方法引用。示例:
UnaryOperator<String> defaultParser = String::toString;
但采用通用方式,而不仅仅是String
。
答案 0 :(得分:4)
如果只想避免使用lambda表达式,则UnaryOperator
具有静态identity()
方法:
UnaryOperator<Object> defaultParser = UnaryOperator.identity();
如果您特别想要方法引用(为什么?),则可以在类中定义一个方法
public static <T> T identity(T t) {
return t;
}
然后您就可以将其用作方法参考:
UnaryOperator<Object> defaultParser = MyClass::identity;
答案 1 :(得分:2)
是的,您可以将UnaryOperator.identity()
用作:
UnaryOperator<Object> defaultParser = UnaryOperator.identity();
用lambda表达式定义为
static <T> UnaryOperator<T> identity() {
return t -> t;
}