如何将接口函数默认方法compose/ andThen中返回句子的Lambda表达式转换为匿名类

问题描述

我正在学习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 (将#修改为@)