return convertToClass(((ParameterizedType) type).getActualTypeArguments()[1]);
return convertToClass(((ParameterizedType) type).getActualTypeArguments()[1], this.leaf);
    public Class getScalarType() {        if (this.typeInformationValid) {            Type type = this.leaf.getValueType();            Class clazz = convertToClass(type);            if (clazz.isArray()) {                return clazz.getComponentType();            }            else if (Collection.class.isAssignableFrom(clazz)) {                if (type instanceof ParameterizedType) {                    return convertToClass(((ParameterizedType) type).getActualTypeArguments()[0]);                }                else {                    return String.class;                }            }            else if (Map.class.isAssignableFrom(clazz)) {                if (type instanceof ParameterizedType) {                    return convertToClass(((ParameterizedType) type).getActualTypeArguments()[1]);                }                else {                    return String.class;                }            }            else {                return clazz;            }        }        else {            return null;        }    }