使用fastjson中的TypeReference

就是这样了,非常简单的一个转换,同事的电脑可以执行的代码到我这里是编译的时候就报错
'TypeReference()' has protected access in 'com.alibaba.fastjson.TypeReference'
以及
Error:(53, 61) java: TypeReference(java.lang.reflect.Type...) 在 com.alibaba.fastjson.TypeReference 中是 protected 访问控制

导包决对是正确的,有人来帮忙看下吗,急赶工程

public static void main(String[] args) {
        String str = "{'XX':1}";
        Map<String, BigDecimal> map = JSON.parseObject(str, new TypeReference<Map<String, BigDecimal>>());
    }


一只萌萌小番薯
浏览 9284回答 5
5回答

慕设计0599610

应该和我一样是因为粗心大意,落下了 “new TypeReference<T>(){}”看清楚,最后还有一个大括号

泛舟湖上清波郎朗

大概原因是你们两个人的jar版本不同,或者是不是jdk版本不同?

叮当猫咪

将jdk的版本统一一下,建议你降级成和他一样的

饮歌长啸

原因是TypeReference的构造函数的问题,参数是(Type... actualTypeArguments),解决方法是在新建的TypeReference类后面加上一个空白方法块,示例如下:new TypeReference>() {},具体原因我就一知半解了,有知道的大佬补充一下

慕沐林林

JSON.parseObject(str, Map.class);这样就OK啊或者改成JSON.parseObject(str, new TypeReference>(){});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java