github.com/chain5j/chain5j-pkg@v1.0.7/util/reflectutil/parse.go (about) 1 // Package reflectutil 2 // 3 // @author: xwc1125 4 package reflectutil 5 6 import ( 7 "log" 8 "reflect" 9 ) 10 11 func GetValue(param interface{}) reflect.Value { 12 return reflect.ValueOf(param) 13 } 14 15 // GetValues 根据参数获取对应的Values 16 func GetValues(param ...interface{}) []reflect.Value { 17 vals := make([]reflect.Value, 0, len(param)) 18 for i := range param { 19 vals = append(vals, reflect.ValueOf(param[i])) 20 } 21 return vals 22 } 23 24 func ReflectInterface(funcInter interface{}, paramsValue []reflect.Value) []reflect.Value { 25 v := reflect.ValueOf(funcInter) 26 if v.Kind() != reflect.Func { 27 log.Fatal("funcInter is not func") 28 } 29 30 values := v.Call(paramsValue) // 方法调用并返回值 31 return values 32 }