我想知道是否可以将任何lambda表达式转换为方法引用
例如:
如果有一个lambda执行带有2个参数的方法(其中一个来自外部)
.map( t -> removeFilesIfNessasary( externalObj, t ) )
这也可以转换成方法参考吗?
感谢
答案 0 :(得分:3)
你可以创建一个类,有点像这样:
class Remover {
private final Object externalObj;
public Remover(Object externalObj){
this.externalObj = externalObj;
}
public removeIf(int t){
removeFilesIfNessasary( externalObj, t);
}
}
然后声明并使用它:
Remover remover = new Remover(externalObj);
.map(remover::remove);
但严重的是,这看起来非常奇怪;你必须有一个令人信服的理由(我无法想到)。