feat(reflect tool):创建反射工程,提供四个基础反射方法
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* @Author : huangzj
|
||||
* @Time : 2020/4/24 14:51
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"GoReflectTool/util"
|
||||
"fmt"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
func main() {
|
||||
testReflect()
|
||||
}
|
||||
|
||||
func testReflect() {
|
||||
entity := Entity{
|
||||
Num: 1,
|
||||
S: "1223",
|
||||
T: make(map[string]string),
|
||||
}
|
||||
structMap := util.GetStructFieldTypeMap(entity)
|
||||
fmt.Println("根据结构体获取Map结构")
|
||||
for key, val := range structMap {
|
||||
fmt.Println(fmt.Sprintf("结构体属性,key: %v ,value: %v ", key, val))
|
||||
}
|
||||
|
||||
strMap := util.GetPtrFieldTypeMap(&entity)
|
||||
fmt.Println("根据结构体的指针对象获取Map结构")
|
||||
for key, val := range strMap {
|
||||
fmt.Println(fmt.Sprintf("结构体属性,key: %v ,value: %v ", key, val))
|
||||
}
|
||||
|
||||
ptrList := util.GetPtrTypeFieldNameList(reflect.TypeOf(&entity))
|
||||
fmt.Println("根据结构体指针类型获取对应的属性名")
|
||||
for _, val := range ptrList {
|
||||
fmt.Println(fmt.Sprintf("字段名:%s ", val))
|
||||
}
|
||||
|
||||
structList := util.GetStructTypeFieldNameList(reflect.TypeOf(entity))
|
||||
fmt.Println("根据结构体类型获取对应所有字段名称")
|
||||
for _, val := range structList {
|
||||
fmt.Println(fmt.Sprintf("字段名:%s ", val))
|
||||
}
|
||||
}
|
||||
|
||||
type Entity struct {
|
||||
Num int
|
||||
S string
|
||||
T map[string]string
|
||||
}
|
||||
Reference in New Issue
Block a user