自定义list
public interface SourceList extends List {
String getFieldListToString(String fieldName);
}
public class SourceArrayList extends ArrayList implements SourceList,Serializable {
@OverRide
public String getFieldListToString(String fieldName) { return null }
}
public class Source implements Serializable {
private SourceList courseList = new SourceArrayList();
public static void main(String[] args) {
Source src =new Source ();
String json=JSON.toJSONString(src);
Source src2 = JSONObject.parseObject(json, Source.class);
//这里会报错 create instance error, class courseList
}
因为在源码中TypeUtils# public static Collection createCollection(Type type)方法。
else if(rawClass.isAssignableFrom(ArrayList.class)){ 这行无法匹配到父级的ArrayList
最后跑到
list = (Collection) rawClass.newInstance(); 当我这个是一个接口的时候,就会被示例化失败!!
1条答案
按热度按时间a1o7rhls1#
我已经尝试修复这个bug,并提交了pr,请您查看一下是否满足需求 @wenshao