package jxutils import "reflect" func CheckAndGetStructValue(item interface{}) *reflect.Value { value := reflect.ValueOf(item) if value.Kind() == reflect.Ptr { value = value.Elem() } else { panic("item ust be ptr type") } return &value } func GetObjFieldByName(obj interface{}, fieldName string) interface{} { return reflect.Indirect(reflect.ValueOf(obj)).FieldByName(fieldName).Interface() } func SetObjFieldByName(obj interface{}, fieldName string, value interface{}) { refValue := CheckAndGetStructValue(obj) refValue.FieldByName(fieldName).Set(reflect.ValueOf(value)) }