Android Studio - 如何生成类的getters和setters

679 阅读2分钟

Android Studio为你提供了一个帮助菜单来为class 字段生成getters和setters。

下面是如何为Javaclass 字段生成getters和setters:

  • 在Mac上按command + N
  • 在Windows和Linux中按Alt + Insert

在下面的截图中,你可以看到在Generate菜单中突出显示了Generatesetter和getter选项:

Android Studio generate getter and setter option

Android Studio生成getter和setter选项

](android-studio-generate-getter-setter.png)

你也可以通过在代码编辑器中右击你的class 内的任何地方,并选择生成...选项来达到相同的菜单。

一个上下文菜单应该出现,如下图所示:

Android Studio Generate context menu

Android Studio生成上下文菜单

另外,你也可以使用顶栏的代码菜单来为一个类生成获取器和设置器。

代码 > 生成... > 获取器和设置器

在Getter和Setter菜单里面,选择所有你想生成getters和setters方法的字段,然后点击OK

你应该看到在你的代码中生成的获取器和设置器,如下图所示:

public class User {
private String username;
private String password;
 public String getUsername() {
 return username;
 }

 public void setUsername(String username) {
 this.username = username;
 }

 public String getPassword() {
 return password;
 }

 public void setPassword(String password) {
 this.password = password;
 }
}

这就是你如何为一个Java类生成获取器和设置器。

为Kotlin类生成获取器和设置器

默认情况下,Kotlin会自动为你所有的类属性生成getters和setters。

当你在Kotlin中定义以下代码时:

class Profile {
var name: String = "Nathan"
var age: Int = 29
}

获取器和设置器将在你的class ,像这样自动生成:

class Person {
var name: String = "Nathan"
var age: Int = 29
// getter
 get() = field
// setter
 set(value) {
field = value
}
}

在Kotlin中,不需要手动定义getters和setters来获取class 属性或属性值。

下面的Java代码:

private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

相当于下面的Kotlin代码:

var name: String = ""

在Kotlin中,class 字段(或属性)总是通过该类的getter和setter访问。当你运行classname.property = value 赋值时,内部会调用set() 函数。

当你试图使用classname.property 语法来获取属性值时,那么get() 函数就会被调用。

没有必要像Java那样用public 访问器/突变器创建private 属性。

由于这个原因,Android Studio没有提供一个选项来为Kotlin类生成getters和setters。

有时,你可能想把设置器设置为私有的,以防止在类之外进行更改。你可以用下面的代码来做:

class Profile {
var name: String = "Nathan"
 private set
 var age: Int = 29
 private set
}

你需要为每个属性单独设置设置器的访问级别。

现在你已经学会了如何在Android Studio的帮助下生成getters和setters方法。干得好!👍