0
版本:1.2.41 定位到原因是在 TypeUtils.cast(Object obj, ParameterizedType type, ParserConfig mapping) 方法中对于集合类型,没有识别 SortedSet 类型。
public static <T> T cast(Object obj, ParameterizedType type, ParserConfig mapping){
Type rawTye = type.getRawType();
if(rawTye == Set.class || rawTye == HashSet.class //
|| rawTye == TreeSet.class //
|| rawTye == List.class //
|| rawTye == ArrayList.class){
Type itemType = type.getActualTypeArguments()[0];
if(obj instanceof Iterable){
Collection collection;
if(rawTye == Set.class || rawTye == HashSet.class){
collection = new HashSet();
} else if(rawTye == TreeSet.class){
collection = new TreeSet();
} else{
collection = new ArrayList();
}
for(Iterator it = ((Iterable) obj).iterator(); it.hasNext(); ){
Object item = it.next();
collection.add(cast(item, itemType, mapping));
}
return (T) collection;
}
}
....
}