用于在Android Studio中将方法参数指定给字段的Kotlin快捷方式

用于在Android Studio中将方法参数指定给字段的Kotlin快捷方式,android,android-studio,kotlin,Android,Android Studio,Kotlin,在androidstudio中,当我在处理Java类时,我按下Alt+Enter并将方法参数分配给类成员字段 但是,当我使用Kotlin时,没有对该功能的建议 我是否可以为此创建一个新建议,或者是否有任何方法将参数分配给字段 Java类建议: 科特林班级建议: 在kotlin中,您不必编写setter方法来实现这一点,这可能就是您没有得到建议的原因 在您的示例中,如果您希望有一个包含getter和setter的authPresenter字段,则将其声明为var,kotlin提供了其余部分: c

在androidstudio中,当我在处理Java类时,我按下Alt+Enter并将方法参数分配给类成员字段

但是,当我使用Kotlin时,没有对该功能的建议

我是否可以为此创建一个新建议,或者是否有任何方法将参数分配给字段

Java类建议:

科特林班级建议:


在kotlin中,您不必编写setter方法来实现这一点,这可能就是您没有得到建议的原因

在您的示例中,如果您希望有一个包含getter和setter的
authPresenter
字段,则将其声明为
var
,kotlin提供了其余部分:

class AuthenticationView(...) {
    var authPresenter: AuthPresenter? = null
}
这为我们提供了一个可为空的
AuthPresenter
。用惯用的方式来称呼它:

val view = AuthenticationView(...)
view.authPresenter = AuthPresenter(...)
在封面下,对
.authPresenter=someObject
的调用被转换为
setAuthPresenter(someObject)

如果要从Java调用此函数,您将看到为您自动生成的
getAuthPresenter()
setAuthPresenter()

简而言之:Kotlin没有这个选项的原因是因为有一种更惯用的方法来实现这一点。

根据答案,不需要编写像java这样的setter/getter方法

如果我们想声明setter/getter,我们必须声明一个
var
,并编写get()和set(value),如下所示:

class AuthenticationView(...) {
    var authPresenter: AuthPresenter? = null
        get() = field
        set(value) {  
           field = value
           ....
        }
我认为这是一个属性字段,我在中看到过类似的内容 C#

如果要设置或获取authPresenet,请执行以下操作:

//set
authenticationView.authPresenter = object

//get
object = authenticationView.authPresenter
我们可以在kotlin-like设置
TextView
的文本或
View
的背景中看到这样的代码