net.sf.json的JSONObjetct.toBean与lombok@Data注解的碰撞

原创  郑建华   2021-05-11   244人阅读  0 条评论

    最近在写一个保存接口时,用到了一个包含泛型的参数对象,在处理参数对象时意外发现了问题。

image.png

    传入的materialObj为一个泛型对象,通过断点调试时,发现类型为LinkendHashMap,原本想采用强制类型转换,更改为了现在的通过json转java对象。

image.png

    第一步将linkedHashMap转JSONObject时正常。

image.png

    然而,下一步转换就出现了问题,对象属性全部为null

image.png

    跟进源码调试,发现在pd.getWriteMethod处进入了==null的逻辑

image.png

分析是没有set方法导致的,而素材对象中,使用lombok的@Data注解,get set方法应该是相当于存在的才对。

image.png

为验证猜测,生成了get set方法后,再次运行,转换后得到了正确的结果,果然是这个影响的。

image.png

本文地址:https://www.zjh336.cn/?id=2037
版权声明:本文为原创文章,版权归 郑建华 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?