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  }