码迷,mamicode.com
首页 > 编程语言 > 详细

【GoLang】golang 如何像Java 一样通过类名反射对象?

时间:2016-11-29 19:28:35      阅读:423      评论:0      收藏:0      [点我收藏+]

标签:支持   log   color   资料   weight   版本   htm   bsp   type   

结论:

golang不支持解析string然后执行。

golang的反射机制只能存在于已经存在的对象上面。

不知道后续的版本有没有规划,现在只能先加载注册,然后实现类似Java工厂模式的反射。

 

代码示例:

 

    t := reflect.ValueOf(Human{}).Type()
    //    h := reflect.New(t).Elem()
    // new return address pointer
    h := reflect.New(t).Interface()
    fmt.Println(h)
    hh := h.(*Human)
    fmt.Println(hh)
    hh.SayHello()
    hh.age = 123
    hh.name = "abc"
    hh.weight = 345
    hh.SayHello()

i = Human{"Emp", 25, 120}
fmt.Println(reflect.TypeOf(i).Field(0).Type)
fmt.Println(reflect.ValueOf(i).Field(1))
// reflect.ValueOf(i).Field(1).Elem().SetInt(88)
// fmt.Println(reflect.ValueOf(i).Field(1))


 

 

 

参考资料:

知乎,为什么不能通过字符串创建golang对象: https://www.zhihu.com/question/25580049

http://www.tuicool.com/articles/ZJBNni

https://my.oschina.net/wujibing/blog/682802

http://studygolang.com/articles/896

http://blog.csdn.net/rufidmx/article/details/18226649

http://www.cnblogs.com/yjf512/archive/2012/06/10/2544391.html

 

【GoLang】golang 如何像Java 一样通过类名反射对象?

标签:支持   log   color   资料   weight   版本   htm   bsp   type   

原文地址:http://www.cnblogs.com/junneyang/p/6114812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!