Создание геттеров и сеттеров в классе Колтина в Android Studio - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь сгенерировать методы получения и установки в моем классе модели Kotlin без написания кода вручную, но параметры не отображаются в меню "Создать" в Android Studio.

My Класс модели (Kotlin)

import com.google.gson.annotations.Expose
import com.google.gson.annotations.SerializedName

public class EventsRoadSummaryAPINodeModel {

    @SerializedName("road_name")
    @Expose
    var road_name: String? = null

    @SerializedName("locality")
    @Expose
    var locality: String? = null

    @SerializedName("postcode")
    @Expose
    var postcode: String? = null

    @SerializedName("local_government_area")
    @Expose
    var local_government_area: String? = null

    @SerializedName("district")
    @Expose
    var district: String? = null
}

Как генерировать геттеры и сеттеры в классе Kotlin, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 11 апреля 2020

В соответствии с документацией Kotlin Свойства и поля , каждое изменяемое свойство (т. Е. var) имеет для него автоматически получатель и установщик.

Поэтому нет причин для автоматического генерирования геттеров и сеттеров для кода Kotlin.

Если у вас есть аннотации, которые необходимо поместить, например, в специально сгенерированный геттер, вы можете использовать синтаксис @get:Expose.

1 голос
/ 11 апреля 2020

Вы можете использовать ' класс данных ' для того же самого. в классе данных вам не нужно создавать метод Getter-Setter. класс данных автоматически создается для вас

Kotlin Документация ссылка

Проверьте пример Google Codelab для того же ссылка

0 голосов
/ 11 апреля 2020

Ладно, таким плохим решением было вставить приведенный ниже код Kotlin в файл java и переформатировать переменные в код java. Затем в меню «Сгенерировать» появляется опция для генерации установщиков-получателей, в которой вы можете обрабатывать и генерировать установщики-получатели.

Temp Java файл, используемый для генерации установщиков-получателей

public class EventsRoadSummaryAPINodeModel {

  @SerializedName("road_name")
  @Expose
  String road_name;

  @SerializedName("locality")
  @Expose
  String  locality;

  @SerializedName("postcode")
  @Expose
  String  postcode;

  @SerializedName("local_government_area")
  @Expose
  String  local_government_area;

  @SerializedName("district")
  @Expose
  String  district;

}

Затем я вставил сгенерированные установщики геттеров в мой оригинальный файл класса Kotlin и позволил студии android преобразовать вставленный код в формат Kotlin.

...