func getListType()

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
}