【发布时间】:2017-08-07 10:01:37
【问题描述】:
我想在net/http/server.go中调用http.Server的newConn方法
func (srv *Server) newConn(rwc net.Conn) *conn {
c := &conn{
server: srv,
rwc: rwc,
}
if debugServerConnections {
c.rwc = newLoggingConn("server", c.rwc)
}
return c
}
尝试使用反射访问但发生错误
conn := ...
server := &http.Server{}
inputs := make([]reflect.Value, 1)
inputs[0] = reflect.ValueOf(conn)
c := reflect.ValueOf(server).MethodByName("newConn").Call(inputs)
panic: reflect: call of reflect.Value.Call on zero Value
goroutine 17 [running, locked to thread]:
reflect.flag.mustBe(0x0, 0x13)
/usr/local/go/src/reflect/value.go:201 +0xae
reflect.Value.Call(0x0, 0x0, 0x0, 0xc420047d10, 0x1, 0x1, 0x0, 0x0, 0xc4200e82c0)
/usr/local/go/src/reflect/value.go:300 +0x38
有什么解决办法吗?
【问题讨论】: