代码之家  ›  专栏  ›  技术社区  ›  Dang Nguyen

如何在一元运算符java 8中使用引用方法

  •  3
  • Dang Nguyen  · 技术社区  · 6 年前

    UnaryOperator 这样地

    UnaryOperator<Object> defaultParser = obj -> obj;
    

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

    UnaryOperator<String> defaultParser = String::toString;
    

    但是用一般的方法,不仅仅是 String .

    2 回复  |  直到 6 年前
        1
  •  4
  •   Misha    6 年前

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

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

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

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

    UnaryOperator<Object> defaultParser = MyClass::identity;
    
        2
  •  2
  •   Naman    6 年前

    是的,你可以使用 UnaryOperator.identity() 作为:

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

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