[agent-go] - 去除本地环境信息的默认设置,优化启动逻辑
This commit is contained in:
21
agent-common/utils/ReflectUtils.go
Normal file
21
agent-common/utils/ReflectUtils.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package utils
|
||||
|
||||
import "reflect"
|
||||
|
||||
// CopySameFields 利用反射,将a中的所有同名字段的值 复制到b中的对应字段
|
||||
func CopySameFields(source, target interface{}) {
|
||||
va := reflect.ValueOf(source).Elem()
|
||||
vb := reflect.ValueOf(target).Elem()
|
||||
|
||||
for i := 0; i < va.NumField(); i++ {
|
||||
// 忽略source中 空值的部分
|
||||
if va.Field(i).IsZero() {
|
||||
continue
|
||||
}
|
||||
|
||||
fieldName := va.Type().Field(i).Name
|
||||
if vb.FieldByName(fieldName).IsValid() {
|
||||
vb.FieldByName(fieldName).Set(va.Field(i))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user