Kotlin快捷方式,用于将方法参数分配给Android Studio中的字段

时间:2018-01-07 14:33:48

标签: android android-studio kotlin

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

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

我可以为此创建新建议,还是有办法为字段分配参数?

Java类建议:

java class suggestion

Kotlin班级建议:

enter image description here

2 个答案:

答案 0 :(得分:5)

在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没有选项的原因,是因为有一种更惯用的方法可以做到这一点。

答案 1 :(得分:0)

根据Todd的答案,不需要编写像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中看到像这样的代码,例如设置TextView的文字或View的背景