Android 为什么在Kotlin编译器的文本字段上有setText()?
它抱怨说“平台声明冲突:以下声明具有相同的JVM签名(setText..),因为您的Android 为什么在Kotlin编译器的文本字段上有setText()?,android,kotlin,Android,Kotlin,它抱怨说“平台声明冲突:以下声明具有相同的JVM签名(setText..),因为您的var text和您的函数setText()都被转换为JVM到名为setText()的公共方法 为避免平台声明冲突,此处有3个选项: 更改var text的名称或setText 使用专用的集合生成var文本: var文本:字符串?=null 专用设备 更改方法的JVM名称: @JvmName(“myJvmName”) fun setText(文本:字符串){ this.text=文本 } setText()方法
var text
和您的函数setText()
都被转换为JVM到名为setText()
的公共方法
为避免平台声明冲突,此处有3个选项:
var text
的名称或setText
集合
生成var文本
:var文本:字符串?=null
专用设备
@JvmName(“myJvmName”)
fun setText(文本:字符串){
this.text=文本
}
setText()
方法是由kotlin编译器自动生成的,手动实现它们不需要额外的开销。
private class FakeCardDrawable constructor(
context: Context) : CardDrawable(context) {
var text: String? = null
var backgroundColor = 0
var textColor = 0
override fun setColors(
backgroundColor: Int, textColor: Int, animate: Boolean
) {
this.backgroundColor = backgroundColor
this.textColor = textColor
}
fun setText(text: String) {
this.text = text
}
}