如何通过反射获得阴影方法?
在下面的代码我使用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
相关分类