【发布时间】:2021-08-14 07:16:11
【问题描述】:
data class Bar(
var foo: String = "",
var isFoo: String = ""
)
编译器报错:
平台声明冲突:以下声明具有相同的 JVM 签名 (setFoo(Ljava/lang/String;)V):
public final fun (
如何提示编译器为 setter 使用原始字段名称? (setFoo 和 setIsFoo) 注意:代码是由jooq生成的(来自数据库模式),所以手动更改代码不是一个好方法
【问题讨论】:
-
在不修改代码的情况下没有任何方法可以做到这一点。这不是您可以通过编译器设置更改的内容。
-
通常情况下,您可以使用
@JvmName执行此操作,但这需要修改代码。我想说这是代码生成器中的一个错误/疏忽——它应该尽量不生成无效的代码。 -
我想修改代码,因此它设置 jvm 名称不应该引起任何问题,因此是一个有效的答案 - 即使它的修改代码。
标签: kotlin jooq jooq-codegen-maven