通过反射获取阴影方法

如何通过反射获得阴影方法?


在下面的代码我使用MethodByName获得方法Test()上类型B,但我想获得的阴影法Test()从b.A为好,这样我可以叫他们两个。


package main


import (

    "fmt"

    "reflect"

)


type A struct {}

type B struct {

    A

}


func (self *A) Test() {

    fmt.Println("I'm A")

}

func (self *B) Test() {

    fmt.Println("I'm B")

}


func main() {

    b := &B{}

    b.Test()   // This one shadows b.A.Test()

    b.A.Test() // but its ok to call like this


    // via reflection

    val := reflect.ValueOf(b)

    val.MethodByName("Test").Call([]reflect.Value{})

}

可用代码:http : //play.golang.org/p/6YPLy2dmMb


泛舟湖上清波郎朗
浏览 183回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go