in list.go [105:137]
func getListType(javaListName string) reflect.Type {
javaName := javaListName
if strings.Index(javaName, "[") == 0 {
javaName = javaName[1:]
}
if strings.Index(javaName, "[") == 0 {
lt := getListType(javaName)
if lt == nil {
return nil
}
return reflect.SliceOf(lt)
}
var sliceTy reflect.Type
ltm := listTypeMapper[javaName]
if ltm != nil {
sliceTy = reflect.SliceOf(ltm)
}
if sliceTy == nil {
tpStructInfo, _ := getStructInfo(javaName)
if tpStructInfo == nil || tpStructInfo.typ == nil {
return nil
}
tp := tpStructInfo.typ
if tp.Kind() != reflect.Ptr {
tp = reflect.New(tp).Type()
}
sliceTy = reflect.SliceOf(tp)
}
return sliceTy
}