问题描述
我正在学习Lambda表达式和功能接口。我在函数接口默认方法中找到了一个有趣的Lambda表达式
default <V> Function<V,R> compose(Function<? super V,? extends T> before) {
Objects.requireNonNull(before);
return (V v) -> apply(before.apply(v));
}
所以我尝试将Lambda转换为匿名类,这是我的思考过程
return (V v) -> apply(before.apply(v));
//can transform to this Lamda (This step success)
return (V v) -> this.apply(begore.apply(v));
//can transform to this anonymous class (this step fail)
return new Function<V,R>(){
@Override
public R apply(V v) {
return this.apply(before.apply(v));
}
};
所以我发现Lambda中的“ this”关键字可以指向调用compose方法的对象,但是在匿名类的方法中,它指向匿名类的对象。
所以如果我不能在anonymou类中使用“ this”关键字,是否还有其他方法可以获取调用compose方法的对象? 以及如何将此Lambda转换为匿名类?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)