我知道,已经有人问过类似的问题,但我没有找到该案例的答案:
type ExportedStruct struct{ //comes from a dependency, so I can't change it
unexportedResource ExportedType
}
我想调用上的导出方法。Close()unexportedResource
我所做的是:
rs := reflect.ValueOf(myExportedStructPtr).Elem() //myExportedStructPtr is a pointer to an ExportedStruct object
resourceField := rs.FieldByName("unexportedResource")
closeMethod := resourceField.MethodByName("Close")
closeMethod.Call([]reflect.Value{reflect.ValueOf(context.Background())})
,结果是reflect.flag.mustBeExported using value obtained using unexported field.
这是非常烦人的,因为我想运行多个使用 的测试ExportedStruct,但只要不使用底层资源我就不能运行。
由于我可以访问私有字段(如此处所述),我有点希望我也可以以某种方式访问该字段的公共方法。也许我只是反映错误?
呼如林
至尊宝的传说
慕码人2483693
相关分类