#maven #intellij-idea #kotlin
#maven #intellij-идея #kotlin
Вопрос:
Я пытаюсь использовать Vert.x в Kotlin. У меня есть следующий фрагмент кода:
val deploymentOptions = DeploymentOptions()
deploymentOptions.setConfig(JsonObject().put("http.port", 8081))
Все работает нормально. Однако IntelliJ IDEA сообщает во второй строке, что я должен использовать «синтетические свойства Kotlin».
Есть идеи, как это сделать в этом случае. Кроме того, я использую Maven.
Ответ №1:
Нажмите alt enter в этой строке. ИДЕЯ должна предложить вам решение. Выберите один.
Вероятно:
deploymentOptions.config = JsonObject().put("http.port", 8081)
Ответ №2:
В документации Kotlin для Java interop говорится о получателях и установщиках и о том, как они связаны со свойствами:
Методы, которые следуют соглашениям 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, говорит вам, что лучше (идиоматично) использовать синтаксис свойств вместо прямого вызова средства получения или установки. Поэтому вместо использования:
deploymentOptions.setConfig(...)
Вы бы использовали:
deploymentOptions.config = ...