一次解决IDEA编译运行不报错,但代码报红线,提示工具也出现不了代码的问题

1、出现原因

项目引用了okhttp3.5.0版本,之后需要升级到okhttp4.10.0,为了提高性能;

2、查找过程
2.1、是否缓存原因造成的

在这里插入图片描述
通过重启缓存失败;

2.2、是否JDK不支持

但可以正常编译,运行,说明JDK是支持的;

2.3、分析JAR的类

全盘搜索,找到对应的类;
在这里插入图片描述
在Files里面存在,不是现实类,在Classes里面不存在,说明IDEA认为它不是一个类;
点开文件,没有任何类型,只有一句提示

/ This class file was compiled with different version of Kotlin compiler and can’t be decompiled.
// Current compiler ABI version is 1.4.0
// File ABI version is 1.6.0

/ 此类文件是使用不同版本的 Kotlin 编译器编译的,无法反编译。
// 当前编译器 ABI 版本为 1.4.0
// 文件 ABI 版本是 1.6.0

猜测意思是这个文件使用Kotlin编译的文件,当前IDE用的Kotlin编译器版本是1.4.0,但这个文件编译器用的是1.6.0,说明Kotlin编译器版本太低了;

3、解决问题

升级Kotlin编译器
在这里插入图片描述
解决,全盘搜索,已经能在Classes里面找到了
在这里插入图片描述
在这里插入图片描述

### 解决MyBatis Mapper接口方法出现编译错误或IDE警告的方法 #### 方法签名匹配 Mapper 接口中的方法签名必须严格对应 SQL 映射文件中的定义。如果存在任何差异,可能会导致 IDE 提示到实现类或者运行报错。例如,在 `User` 表查询操作中: ```java public interface UserMapper { User select(@Param("username") String username, @Param("password") String password); } ``` 对应的 XML 文件应为: ```xml <select id="select" parameterType="map" resultType="user"> SELECT * FROM tb_user WHERE username = #{username} AND password = #{password} </select> ``` 确保参数名称一致并使用 `@Param` 注解指定参数名[^3]。 #### 使用合适的返回类型 当从数据库获取数据时,应该根据实际需求设置合适的结果集映射方式。可以采用简单类型的单值返回、复杂对象封装或是列表形式。比如上述例子中,假设希望得到的是单一用户记录,则应当声明成具体的实体类而非集合;反之则需调整为 List<User> 类型。 #### 配置 MyBatis 插件支持 为了使 IDEA 或 Eclipse 等开发工具能够更好地识别和解析 MyBatis 的 mapper 接口及其关联的 sql 脚本,建议安装相应的插件(如 mybatipse)。这有助于消除必要的语法提示错误,并增强代码补全功能。 另外,确认项目已正确引入 MyBatis 及其依赖库版本兼容性良好,避免因第三方包冲突引发潜在问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值