一、在使用fastjson中遇到的问题
导论:最近在写一个 JavaFx 项目的时候使用到了 fastjson 作为处理 json 数据的依赖。在其它非 JavaFx 项目中也使用到了相同版本的 fastjson,但是可以正常运行,而在 JavaFx 项目中却报异常,刚开始以为是我的依赖没有正确导入,然后删了重新再导入,结果还是报异常。
我创建的是JavaFx
项目,不是使用Maven
进行依赖管理,因为在idea 2019
中创建的JavaFx
项目没这个选项。创建完项目后,在项目目录下创建lib
目录,然后把fastjson.jar
包进来,直接复制过来,还要记得右击选择Add as Library
。
上面的都是基本操作,相信大家大会的。
当你自信满满,运行项目的时候,就会报异常java.lang.NoClassDefFoundError
。
这个时候,你就会在网上到处在解决办法,然后还是没有找到解决办法,最后找到这里来了。
你会一度怀疑自己导入的fastjson.jar
是否正常,反复确认,感觉并没有什么问题,心想如果没有导入成功,那在调用fastjson
中的方法的时候也应该会报错,而不是等到运行的时候才报错。
二、解决办法
遇到问题并解决问题,才能够学到东西。
其实上面这种情况不是没有导入依赖,也不是所谓的JDK
版本问题,而是fastjson
版本问题。你需要把fastjson
的版本降低一下就行了。
所以从这次开发种遇到的问题得出一个结论:并不是所有最新版本的都是最好的,因为最新版本意味着还有很多没有发现的bug
。当然后有的人会说,就版本中不是更多bug
吗?是的旧版本确实有bug
,所以才会推出新版本去修复这些已知的bug
,但是如果我们使用的是最新版本的,那么我们将不知道存在哪些bug
,这样我们在开发中就要自己去发现bug
。
Q.E.D.