在Android Studio中生成Kotlin类的Getter和Setter

5

我想在我的 Kotlin 模型类中生成 Getter 和 Setter,但在 Android Studio 的“Generate”菜单中没有显示选项。

我的模型类(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 类中生成 getter 和 setter?


不确定为什么在基于Kotlin的代码中,Android Studio的生成菜单中没有显示生成Getter Setter选项。 - BENN1TH
1
在 Kotlin 中,var 已经生成了 getter 和 setter。你到底想做什么? - ianhanniballake
我想生成以下代码:fun getType(): String? { return type }fun setType(type: String?) { this.type = type } - BENN1TH
1
是的,当您拥有var type: String? = null时,这就是您自动获得的。您不必为属性编写getter和setter。 - ianhanniballake
啊,好的,哈哈,浪费了一些时间,没关系,谢谢你澄清。也许我应该多读一些 Kotlin 文档... - BENN1TH
https://kotlinlang.org/docs/reference/properties.html - BENN1TH
3个回答

5
根据Kotlin Properties and Fields documentation,每个可变属性(即var)都会自动创建getter和setter。
因此,在Kotlin代码中没有自动生成getter和setter的必要。
如果您有需要放置在特定生成getter上的注释,可以使用@get:Expose语法。

1
您可以使用“数据类”来实现相同的功能。在数据类中,您不需要创建Getter-Setter方法。数据类会自动为您创建。

Kotlin文档 链接

检查Google Codelab示例以获取相同的结果链接


0

好的,那么一个简单的解决方案是将下面的 Kotlin 代码粘贴到 Java 文件中,并将变量重新格式化为 Java 代码。然后在“生成”菜单中会出现生成 Getter 和 Setter 的选项,您可以使用它来处理和生成 Getter 和 Setter。

用于生成 Getter 和 Setter 的临时 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;

}

然后,我将生成的Getter和Setter粘贴到我的原始Kotlin类文件中,并让Android Studio将粘贴的代码重新格式化为Kotlin格式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接