Mybatis中xxx对象无法转化为Optional对象(cannot be cast to java.util.Optional)
·
1. 前言
-
在前几天工作的时候,突然发现如下报错:

从上述报错信息可以得出:某个对象无法转化为Optional对象。而对应的代码如下:

无论从哪里看,都感觉没有任何问题,不经感概到居然还有不能使用Optional的吗?此时,长吸一口烟,压压惊。
2. 先说结论
-
对于我的问题来说,实际上就是该项目的mybatis版本太低了,无法使用Optional。
<!-- 原先的低版本,mybatis不支持使用optional--> <!-- <dependency>--> <!-- <groupId>org.mybatis.spring.boot</groupId>--> <!-- <artifactId>mybatis-spring-boot-starter</artifactId>--> <!-- <version>1.3.4</version>--> <!-- </dependency>--> <!-- 替换高版本即可 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
3. 过程
- 刚刚开始看到这个报错,以为是sql有问题,但是把sql去数据库客户端执行并无问题,后来检查代码,似乎也没问题。
- 然后开始上网查询资料,似乎也没类似可以参考的资料,到这里真无解了。
- 无意中认真查看了报错信息,发现有个被压缩的内容,如下:


发现了Unknown Source,不认识的源文件???不认识??Optianol不认识???
突然顿悟,该不会是版本太低了,不支持optianol吧。
后来排查确实是版本过低,更新为高版本之后,问题得以解决了。
更多推荐
所有评论(0)