From b1b47302a35b661e315c9bc1f14e071cb5d8da8f Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 12 Aug 2023 16:27:02 +0800 Subject: [PATCH] 1 --- metatable.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/metatable.go b/metatable.go index 1a7fa67..92d8cde 100644 --- a/metatable.go +++ b/metatable.go @@ -132,9 +132,9 @@ func (this *IdMetaTable[T]) Load() { if this.PrimKey == "" { this.idHash[i] = obj } else { - ele := reflect.ValueOf(obj).Elem() in := []reflect.Value{} - out := ele.FieldByName(getFuncName).Call(in) + method := reflect.ValueOf(obj).MethodByName(getFuncName) + out := method.Call(in) if key, err := q5.ToInt64Ex(out[0].Interface()); err == nil { this.idHash[key] = obj } else { @@ -160,9 +160,9 @@ func (this *NameMetaTable[T]) Load() { i := int64(0) getFuncName := "Get" + q5.ConvertUpperCamelCase(this.PrimKey) this.Traverse(func (obj *T) bool { - ele := reflect.ValueOf(obj).Elem() in := []reflect.Value{} - out := ele.FieldByName(getFuncName).Call(in) + method := reflect.ValueOf(obj).MethodByName(getFuncName) + out := method.Call(in) if key, err := q5.ToStringEx(out[0].Interface()); err == nil { this.nameHash[key] = obj } else {