嵌套ArrayList:访问私有成员

Kri*_*K S 2 java arraylist

这是我被要求做的功课问题.

创建一个外部ArrayList并将两个ArrayList插入其中.

ArrayList<Customer> customers1 = new ArrayList<Customer>();
ArrayList<CustomerOtherDetails> customers2 = new ArrayList<CustomerOtherDetails>();
ArrayList<ArrayList> outerList = new ArrayList<ArrayList>();
Run Code Online (Sandbox Code Playgroud)

这些是创建的三个ArrayList,存在两个单独的样本类Customer和CustomerOtherDetails.我会通过执行customers1.add(客户)等将参考变量添加到arrayLists(customers1和customers2).我被要求做一些示例,例如添加新客户,搜索新客户,排序等所有这些来自嵌套的ArrayList

我目前面临的问题是我无法打印数组列表中引用变量指向的值的详细信息.

当我尝试使用get()打印出值时,我只能像这样打印出来

[[new.Customer@3972aa3f], [new.advanced.CustomerOtherDetails@17072b90]]
Run Code Online (Sandbox Code Playgroud)

Rod*_*eas 5

您需要覆盖public String toString()Customer类和CustomerOtherDetails类中的方法.

这是你如何做到的:

public class Customer { 
     // ... other code

    @Override
    public String toString() {
        return "Customer: " + ... ; // append instance variable values here
    }
}
Run Code Online (Sandbox Code Playgroud)

toString方法在基Object类中定义,所有其他类都在Java中继承.每当您尝试将对象转换为String时,它都会被隐式调用,例如通过System.out.println.