gpt4 book ai didi

java - 当用作另一个对象的成员变量时如何设置和检索 ArrayList

转载 作者:行者123 更新时间:2023-12-01 11:18:53 25 4
gpt4 key购买 nike

我有以下代码:

 public class Address {

private String city;

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

}

我还有另一个类UserArrayList<Address>作为成员变量如下。

import java.util.ArrayList;

public class User {

private String name;
private ArrayList<Address> listOfAddresses ;

public ArrayList<Address> getListOfAddresses() {
return listOfAddresses;
}

public void setListOfAddresses(ArrayList<Address> listOfAddresses) {
this.listOfAddresses = listOfAddresses;
}

public String getName() {
return name;
}

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


}

在具有 main 方法的类中,我创建了用户对象,它有两个成员变量,例如 name 和 listofAddresses 。现在,我需要一些有关如何设置 listOfAddresses 值的指导使用用户对象。以及如何使用用户对象检索。

我的主类看起来像这样。

import java.util.ArrayList;

public class ArrayImpl {

public static void main(String[] args) {

User user = new User();
user.setName("First User");

Address address = new Address();
address.setCity("Melbourne");

user.setListOfAddresses(address);

}

}

我在 user.setListofAddressess(address) 处遇到错误如:

The method setListOfAddresses(ArrayList) in the type User is not applicable for the arguments (Address)

我的理解是listOfAddresses是一个Address类型的ArrayList因此我尝试使用 listOfAddresses 的 setter 方法成员变量来设置它的值。

有人可以帮我如何设置listOfAddresses并使用 user 进行检索对象。

最佳答案

您主要有两个选择:

丑陋的方式您可以通过调用 Getter 来检索当前的地址列表,然后添加新地址,然后使用新列表调用 Setter:

List<Address> addresses = user.getListOfAddresses();
addresses.add(address);
user.setListOfAddresses(addresses);

聪明又酷的方式您的User类提供了添加和删除地址的委托(delegate)。为此,请在 User 类中添加用于您目的的方法:

public void addAddress(Address a) {
this.listOfAddresses.add(a);
}

关于java - 当用作另一个对象的成员变量时如何设置和检索 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31489466/

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