gpt4 book ai didi

java - 在Java中: How do I create a class that can be initialized and call its methods in one statement?

转载 作者:行者123 更新时间:2023-12-01 06:42:48 25 4
gpt4 key购买 nike

在使用 Google 服务库时,我在 Android 编程中经常看到一种编码风格,它们在初始化类的实例后使用点来调用方法。

例如,假设我有一个 Person 类:

public class Person {
private String firstName;
private String lastName;
private String occupation;
private String primarySkill;
private String secondarySkill;

/* ******************
* CONSTRUCTOR
* ******************/
public Person(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
}

/* ******************
* MUTATORS
* ******************/
// firstName Setter:
public void setFirstName(String firstName) {
this.firstName = firstName;
}

// lastName Setter:
public void setLastName(String lastName) {
this.lastName = lastName;
}

// occupation Adder:
public void addOccupation(String occupation) {
this.occupation = occupation;
}

// primarySkill Adder:
public void addPrimarySkill(String primarySkill) {
this.primarySkill = primarySkill;
}

// secondarySkill Adder:
public void addSecondarySkill(String secondarySkill) {
this.secondarySkill = secondarySkill;
}
}

现在,当我创建此类的实例时,我希望能够执行以下操作:

Person bob = new Person("Bob", "Anderson")
.addOccupation("Student")
.addPrimarySkill("Java")
.addSecondarySkill("SQL");

但是这给了我语法错误。我怎样才能构建一个可以让我做到这一点的类?

最佳答案

您正在寻找的称为方法链。修改您的 setter 以返回 this:

// occupation Adder:
public Person addOccupation(String occupation) {
this.occupation = occupation;
return this;
}

关于java - 在Java中: How do I create a class that can be initialized and call its methods in one statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com