Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么在Kotlin编译器的文本字段上有setText()?_Android_Kotlin - Fatal编程技术网

Android 为什么在Kotlin编译器的文本字段上有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()方法

它抱怨说“平台声明冲突:以下声明具有相同的JVM签名(setText..)

,因为您的
var text
和您的函数
setText()
都被转换为JVM到名为
setText()
的公共方法

为避免平台声明冲突,此处有3个选项:

  • 更改
    var text
    的名称或
    setText
  • 使用专用的
    集合
    生成
    var文本
  • var文本:字符串?=null
    专用设备
    
  • 更改方法的JVM名称:
  • @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
        }
    }