for(int i = 0;i<10;i++){
Method method = Test.class.getMethod("getMsgListByUid", String.class);
Object object = JSON.parseObject(str,method.getGenericReturnType());
}
public interface Test {
ResultObject getMsgListByUid(String str);
}
public class ResultObject{
private T data;
}
public class UserMsgListModel{
private int id;
}
这样的用例,在parse泛型对象时,每次都去重新创建JavaBeanDeserializer,原因是每次的method是一个新的实例,导致fastjson的int hash = System.identityHashCode(key);每次的hash不同,然后去创建新的JavaBeanDeserializer,试了最新版也是这样,可以在业务层面缓存method,每次使用同一个,fastjson能不能解决这个呢?
1条答案
按热度按时间r6l8ljro1#
可以升级到1.2.83版本或者2.0.23版本解决这个问题