Использование синтетических свойств Котлина

Я пытаюсь Vert.x в Котлине. У меня есть следующий код:

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

Все работает нормально. Однако IntelliJ IDEA сообщает о второй строке, что я должен использовать «синтетические свойства Котлина».

Любая идея, как это сделать в этом случае. Кроме того, я использую Maven.

Решение:

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

Спасибо за помощь 🙂

Хит alt + введите эту строку. IDEA должна предложить вам решение. Выбери один.

Вероятно:

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

В документации Kotlin для Java interop речь идет о геттерах и сеттерах и о том, как они относятся к свойствам:

Методы, которые следуют соглашениям Java для геттеров и сеттеров (методы без аргументов с именами, начинающимися с методов get и single-argument с именами, начинающимися с набора) представлены в качестве свойств в 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 = ...