【发布时间】:2020-08-06 12:39:33
【问题描述】:
我有一个带有 @JvmSynthetic 设置器的类,以便为 Java 客户端仅提供流畅的类似构建器的设置器:
class PersonBuilder {
@set:JvmSynthetic // hide a void setter from Java
var age: Int? = null
@set:JvmSynthetic
var name: String? = null
fun setAge(age: Int?) = apply { this.age = age }
fun setName(name: String?) = apply { this.name = name }
fun build() = Person(age!!, name!!)
}
在 Java 端这样称呼它:
new PersonBuilder()
.setAge(22) // <- "error"
.setName("Peter")
.build();
它确实编译并运行,但 Android Studio 显示错误“不明确的方法调用。PersonBuilder 中的 setAge (Integer) 和 PersonBuilder 中的 setAge (Integer) 都匹配”并且不提供任何自动- 此“错误”之后的建议和代码格式。
【问题讨论】:
标签: java android-studio kotlin