当我编译代码A时,我得到一个错误,系统提示我存在一个方法名称setEditText.

但是fun setIsShowEditDialog(isShow:Boolean)没有提示就可以存在一个方法名setIsShowEditDialog,为什么?

我得把fun setEditText(input:String)改成fun set_EditText(input:String),编译就可以了.

但Android Studio提示我一条警告信息:Function name 'set_EditText' should not contain underscores,为什么?

Code A

class EditDialogState private constructor(context: Context) {

    var isShowEditDialog by mutableStateOf(false)
        private set

    var editText by  mutableStateOf("")
        private  set

    fun setIsShowEditDialog(isShow:Boolean) {    //It's OK
        isShowEditDialog = isShow
    }

    fun setEditText(input:String) {             //Compile Error
        editText = input
    }
}

推荐答案

答案就在Kotlin属性setter和getter方法名的实现细节中.

class MyTemp {
    var showEditDialog by mutableStateOf(false)
        private set

    var isNewShowEditDialog by mutableStateOf(false)
        private set

    // Will give error
    fun getShowEditDialog(): Boolean {
        return true
    }

    // Will give error
    fun setShowEditDialog(isShow: Boolean) {}

    // Will give error
    fun isNewShowEditDialog(): Boolean {
        return true
    }

    // Will give error
    fun setNewShowEditDialog(isShow: Boolean) {}
}

We can see special handling for variables with the prefix "is".
This causes the difference you are observing.
This is applicable to other types as well like strings.

Android相关问答推荐

如何完全隐藏的元素堆叠在CardView?

如何在Jetpack composeH中创建具有弯曲末端的六边形形状

Android系统应用程序启用编程以太网网络共享

如何在Jetpack Compose中更新异步回调的用户界面

Android 12+BLE字节不同

制作圆形SupportMapFragment

从 Jetpack Compose 中的图像中删除默认高度

Android Studio Relay插件(版本0.3.07)错误

Android:ActivityCompat.requestPermissions 不显示弹窗(Android 13,targetSdkVersion=33)

导航组件中预期的函数调用map(...)

如何放置在柱子的角落(底端)

Jetpack Compose Alignment - 误解了 alignBy 修饰符

您如何衡量条形图的 4 个类别?

在 Kotlin 中打开新片段时如何对当前片段应用更改?

房间创建三四表关系

如何处理 com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "T1V 4Y8" Kotlin

构成material 3 中的分隔符

Jetpack 组合和片段

更新应用程序是否会取消对应用程序特定文件的权限?

将生成的 AAR 与 Composables 一起使用时未解决的参考