我正在使用Jackson AutoMapper通过TypReference将值从SON映射到List MyPojo,就像这样 1.
List<MyPojo> myList= objectMapper.readValue("...json value...", new TypeReference<List<MyPojo>>() {});
但我有几个问题. 我知道TypReference用于捕获通用类型并在运行时保留它,否则我们将因为类型擦除而丢失该信息.但后来我得到警告:
"显式类型参数列表可以替换为"
所以我try 了这个: 二:
List<MyPojo> myList= objectMapper.readValue("...json value...", new TypeReference<>() {});
再说一遍,一切正常,但我想知道这是否是一个有效的警告,因为对象Mapper实际上需要知道要映射到哪个类型? 所以我同时运行.readValue(.)调试器中的方法以查看返回值是多少.第一个方法调用返回MyPojo的ArrayList,这确实是预期的,但第二个方法调用返回linkedHashMap的ArrayList.这也是意料之中的,因为Jackson默认会映射到LinkedIn HashMap,但我不明白如何可以简单地将LinkedIn HashMap的ArrayList分配给MyPojo的List,因为编译器不允许我在没有某种转换的情况下手动这样做?