当前位置: 首页 > 知识库问答 >
问题:

在lambda表达式的上下文中,“提供委托”是什么意思?

尹昂雄
2023-03-14

共有1个答案

彭烨熠
2023-03-14

委托是当一个对象有一个方法,它只是调用另一个对象的等效方法;例如,在下面的类中,方法foo被委托给对象obj:

class Example {
    private final Bar obj;
    public Example(Bar obj) {
        this.obj = obj;
    }
    public Baz foo(Qux x) {
        return obj.foo(x);
    }
}

x->obj.foo(x)这样的lambda表达式在语法上类似于return obj.foo(x);,lambda表达式的计算将创建一个具有方法的对象,该方法将foo方法委托给对象obj,语义上类似于new Example(bj)。所以这是一个委托的例子。

当然,obj::foo还(从语义上)创建一个具有方法的对象,该方法将foo方法委托给对象obj。所以你引用的文本似乎值得商榷;引文至少说明了行为是相同的,所以作者的意思可能是lambda在语法上类似于委托,而方法引用不类似(因为它是点自由的样式)。至少,这似乎是引用的意思。

 类似资料:
  • 这是一种方法: 我对lambda表达式的理解很差,“expression”部分必须返回一个值,在这种情况下,它必须是字符串 So<代码>()- 既然如此,为什么要用lambda表达式呢? 为什么不直接列出。“已读”?

  • 问题内容: 我查看了Android中SensorManager的源代码,发现当您将侦听器的passs控制注册到时,就会发现。 我仅以此为例。我阅读了有关委托编程的Wikipedia文章,但仍不确定其目的。为什么要使用“委托”?它如何帮助控制程序?使用(或不使用)一个的缺点是什么?与听众一起使用最实用吗? 编辑:在第487行,有问题的方法在第1054行附近。 问题答案: 在GoF书中,委托并不完全是

  • 本文向大家介绍C#中的委托是什么?事件是不是一种委托?相关面试题,主要包含被问及C#中的委托是什么?事件是不是一种委托?时的应答技巧和注意事项,需要的朋友参考一下 答: 委托是将一种方法作为参数代入到另一种方法。 是,事件是一种特殊的委托。 //比如:onclick事件中的参数就是一种方法。

  • 问题内容: 我对以下python表达式很感兴趣: 任务是将2个字典合并为第三个字典,以上表达式可以很好地完成任务。我对运算符及其对表达式的作用很感兴趣。我以为是幂运算符,并且尚未在上面的上下文中看到它。 完整的代码段是这样的: 问题答案: 参数列表中的in有特殊含义,如本教程的4.7节所述。随其传递的字典(或类似字典的)对象被扩展为可调用对象的关键字参数,就像被扩展为单独的位置参数一样。

  • 和?我试着在谷歌上搜索,但没有成功。

  • 本文向大家介绍C#中的委托是什么?事件是不是一种委托?事件和委托的关系。相关面试题,主要包含被问及C#中的委托是什么?事件是不是一种委托?事件和委托的关系。时的应答技巧和注意事项,需要的朋友参考一下 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的指针。 委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实