首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于使用MethodHandle在子类中调用祖父类重写方法的探究

关于bindTo方法,其实就是指定方法的接收者,bindTo(this).invoke()和invoke(this)可以认为是一个意思。...我觉得使用bindTo绑定方法接收者要比在invoke方法中传递更加友好,也更加符合程序员的大众理解,invoke可以只专注方法显式的入参。 然后再来说bindTo(this)中的this。...同样的,如果将Son的thinking方法中的bindTo修改为Father对象,也就是bindTo(this)修改为bindTo(new Father()): static class Son extends...这个参数中指定的是方法接收者的类型,bindTo指定的接收者的类型必须要是这个类或子类,不然会出现ClassCastException异常。...因为在处理逻辑中需要做强转,然后再绑定方法接受者: public MethodHandle bindTo(Object x) { Class<?

9.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【黄啊码】一篇文章带你了解php中的闭包和匿名函数

    从父作用域继承变量 在PHP中必须手动调用闭包对象的bindTo方法或使用use关键字把父作用域的变量及状态附加到PHP闭包中。而实际应用中,又以使用use关键字实现居多。...,需要注意的是其中的__invoke魔术方法和bindTo方法。...接下来我们来看看bindTo方法,通过该方法,我们可以把闭包的内部状态绑定到其他对象上。...这里bindTo方法的第二个参数显得尤为重要,其作用是指定绑定闭包的那个对象所属的PHP类,这样,闭包就可以在其他地方访问邦定闭包的对象中受保护和私有的成员变量。...你会发现,PHP框架经常使用bindTo方法把路由URL映射到匿名回调函数上,框架会把匿名回调函数绑定到应用对象上,这样在匿名函数中就可以使用$this关键字引用重要的应用对象: class App {

    55810

    php (匿名函数和闭包)

    下面探讨如何为php闭包附加并封装状态,javascript开发者 可能对php的闭包感到奇怪,因为php闭包不会像真正的javascript闭包那样自动封装应用的状态,在php中, 必须手动调用闭包对象的bindTo...使用bindTo方法附加闭包的状态 别忘了php 闭包是对象,与任何其他的php对象类似,每个闭包实例都可以使用$this关键字获取闭包的内部状态。...闭包对象的默认状态没什么用,不过有一个 __invoke()魔术方法和bindTo() 方法,仅此而已。...但是bindTo() 方法为闭包增加了一些有趣的潜力,我们可以使用这个方法把Closure对象的内部状态绑定到其他的对象上, bindTo() 方法的第二个参数很重要,其作用是指定绑定闭包的那个对象所属的...你会发现,php框架经常使用bindTo()方法把路由URL映射到匿名回调函数上,框架会把匿名函数绑定到应用对象上, 这么做可以在这个匿名函数中使用 $this关键字引用重要的对象。

    1.1K20

    谈谈PHP中的闭包和匿名函数

    return $number++; }, [1,2,3]); var_dump($numbers); 附加状态 PHP闭包不会像真正的javascrypt闭包那样自动封装应用的状态,我们必须手动调用闭包对象的 bindTo...使用 bindTo() 方法附加闭包的状态 与其它PHP对象类似,每个闭包实例都可以使用 $this 关键字获取闭包的内部状态。...闭包对象的默认状态没什么用,不过有一个 \_\_invoke() 魔术方法和 bindTo() 方法。 bindTo() 方法为闭包增加了一些有趣的潜力。...bindTo() 方法的第二个参数很重要,其作用是指定绑定闭包的那个对象所属的PHP类。因此,闭包可以访问绑定闭包的对象中受保护和私有的成员变量。...function addPerson($name, $personCallback){ // 将闭包对象绑定当前实例 $this->name[$name] = $personCallback->bindTo

    1.6K10

    浅谈PHP匿名函数和闭包

    hello1(); $hello1(); $hello2(); 打印结果: itbsl0 itbsl1 itbsl2 kevin0 从父作用域继承变量 在PHP中必须手动调用闭包对象的bindTo...bindTo方法 我们在前面已经提到,闭包是一个对象,所以我们可以在闭包中使用$this关键字获取闭包的内部状态,闭包对象的默认状态没什么用,需要注意的是其中的__invoke魔术方法和bindTo方法...接下来我们来看看bindTo方法,通过该方法,我们可以把闭包的内部状态绑定到其他对象上。...这里bindTo方法的第二个参数显得尤为重要,其作用是指定绑定闭包的那个对象所属的PHP类,这样,闭包就可以在其他地方访问邦定闭包的对象中受保护和私有的成员变量。...你会发现,PHP框架经常使用bindTo方法把路由URL映射到匿名回调函数上,框架会把匿名回调函数绑定到应用对象上,这样在匿名函数中就可以使用$this关键字引用重要的应用对象: class App {

    98741

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券