首页 > 解决方案 > IntelliJ 2020 能否将“可调用”lambda 函数提取到新创建的类中?

问题描述

IntelliJ 2020 可以采用此代码:

Callable < Boolean > callable = ( ) -> {
    System.out.println( this.toString() );
    return Boolean.TRUE;
};

...并将中间的两行提取到一个新创建的类中实现Callable

标签: javaintellij-idearefactoring

解决方案


不,它不能。至少我找不到办法做到这一点。我想你想用一个包含两行 lambda 的方法将 lambda 提取到一个泛型类中。如果您只希望能够将此 lambda 分配给一个变量,您也可以使用现有的功能接口之一。java.util.function.Supplier<T>非常适合这种情况。

Supplier<Boolean> callable = () -> {
    System.out.println(this.toString());
    return Boolean.TRUE;
};

推荐阅读