使用Kotlin合成属性

时间:2016-10-08 18:26:39

标签: maven intellij-idea kotlin

我在Kotlin尝试Vert.x.我有以下代码:

val deploymentOptions = DeploymentOptions()
deploymentOptions.setConfig(JsonObject().put("http.port", 8081))

一切正常。但是,IntelliJ IDEA在第二行报告我应该使用“Kotlin合成属性”。

知道在这种情况下如何做到这一点。另外,我正在使用Maven。

解决方案:

deploymentOptions.config = JsonObject().put("http.port", 8081)

感谢您的帮助:)

2 个答案:

答案 0 :(得分:7)

点击alt +在该行输入。 IDEA应该建议您一个解决方案。选一个。

大概:

deploymentOptions.config = JsonObject().put("http.port", 8081)

答案 1 :(得分:4)

Kotlin documentation for Java interop中,它讨论了getter和setter以及它们与属性的关系:

  

遵循getxter和setter的Java约定的方法(名称以get开头的无参数方法和名称以set开头的单参数方法)在Kotlin中表示为属性。

它提供了示例:

import java.util.Calendar

fun calendarDemo() {
    val calendar = Calendar.getInstance()
    if (calendar.firstDayOfWeek == Calendar.SUNDAY) {  // call getFirstDayOfWeek()
        calendar.firstDayOfWeek = Calendar.MONDAY       // call setFirstDayOfWeek()
    }
}

您在IDE中收到的提示告诉您使用属性语法而不是直接调用getter或setter更好(惯用)。因此,而不是使用:

deploymentOptions.setConfig(...)

你会使用:

deploymentOptions.config = ...