I am trying to use reflection to set a pointer. elasticbeanstalk.CreateEnvironmentInput
has a field SolutionStackName
which is of type *string
. I am getting the following error when I try to set any value:
panic: reflect: call of reflect.Value.SetPointer on ptr Value
Here is my code:
...
newEnvCnf := new(elasticbeanstalk.CreateEnvironmentInput)
checkConfig2(newEnvCnf, "SolutionStackName", "teststring")
...
func checkConfig2(cnf interface{}, key string, value string) bool {
log.Infof("key %v, value %s", key, value)
v := reflect.ValueOf(cnf).Elem()
fld := v.FieldByName(key)
if fld.IsValid() {
if fld.IsNil() && fld.CanSet() {
fld.SetPointer(unsafe.Pointer(aws.String(value)))
//aws.String returns a pointer
...
Here is the log output
time="2016-02-20T23:54:52-08:00" level=info msg="key [SolutionStackName], value teststring"
panic: reflect: call of reflect.Value.SetPointer on ptr Value [recovered]
panic: reflect: call of reflect.Value.SetPointer on ptr Value
Aucun commentaire:
Enregistrer un commentaire