如何解决Java 15的jOOQ:org.jooq中的接口org.jooq.Record和java.lang中的类java.lang.Record都匹配 按需导入不再适用于Record 使用类型推断
我刚刚尝试将项目升级到Java 15,现在出现以下错误:
both interface org.jooq.Record in org.jooq and class java.lang.Record in java.lang match
有人有解决此问题的经验吗?
解决方法
Java 14引入了records。 java.lang.Record
是record
的超类,它与org.jooq.Record
冲突,因为java.lang
中的每种类型都是自动导入的。有两种解决方案:
- 使用完全限定的名称而不是
Record
并删除导入。例如:org.jooq.Record
而不是Record
。 (不要忘记删除import
语句。) - 将
org.jooq.Record
重新声明为特定内容。 (我相信您的情况是不可能的,因为它是第三方库。)
按需导入不再适用于Record
建议将显式导入添加到您的按需导入语句中:
import org.jooq.*;
import org.jooq.Record;
或者完全停止使用按需导入。例如。在Eclipse中,您可以使用“组织导入”功能将所有按需导入语句扩展为显式导入,具体取决于您实际使用的类型。
使用类型推断
另一种防止此问题发生的方法是使用var
:
var record = ctx.fetchOne(TABLE,TABLE.ID.eq(1));
现在您不必导入类型。当然,这不适用于成员类型,方法参数和返回类型。
我们将尝试更好地对此进行记录:https://github.com/jOOQ/jOOQ/issues/10646
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。