请教下 reflect.New 动态创建 struct 问题

augneb · · 5137 次点击
polaris
社区,需要你我一同完善!
如果用一个 interface{} 存一个类型,要取具体类型,用类型断言。
#2
更多评论
我怎么有种:不是动态语言,非得把它当动态语言使 的感觉呢……
#1
我遇到过这样的需求: 有很多个渠道,服务端需要根据客户端发来的支付请求向各个渠道服务器发起创建订单的请求,客户端发来的http请求里面只有一个渠道名称是唯一标识是哪个渠道的,其它字段是所有渠道共用的,我的服务端在收到客户端请求时会根据这个字符串用reflect动态创建一个类对象(每个渠道都会用一个单独的类来实现,但这些类都满足一个interface,这个interface里面定义了所有需要的接口,各个具体类只需要根据各自的情况实现这些接口),然后动态创建的这个对象只需要向上面那样转换成这个interface就可以使用了,不需要知道它的具体实现类: `reflect.New(t).Interface().(MyInterface)`
#3