我有以下代码:
public class Address {
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
我还有另一个类User
与 ArrayList<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/