Reputation: 6255
For example,
type FooService interface {
Foo1(x int) int
Foo2(x string) string
}
What I am attempting to do is getting list ["Foo1", "Foo2"]
using runtime reflection.
Upvotes: 8
Views: 3983
Reputation: 120941
Try this:
t := reflect.TypeOf((*FooService)(nil)).Elem()
var s []string
for i := 0; i < t.NumMethod(); i++ {
s = append(s, t.Method(i).Name)
}
Getting the reflect.Type for the interface type is the tricky part. See How to get the reflect.Type of an interface? for an explanation.
Upvotes: 7