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

标签 java arraylist

我有以下代码:

 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/

相关文章:

java - ubuntu : Could not load the property file 'output_xml.properties' for output method 'xml' 上的 openjdk-1.7.0_55

java - 无法连接到 SMTP 主机

java - 类似 ArrayList 声明之间的类型差异

java - 对文件列表进行排序

java - 在 Activity 之间共享 ArrayList 的良好编程实践

java - 如何在JAVA中通过Mailjet发送附件

java - java开发的最佳操作系统?

Null 值的 Java Criteria 构建器

java - 如何获取存储在 HashMap 中的列表中的对象,以创建新列表

java - 泛型究竟是如何工作的?