2

这是我被要求做的一个家庭作业问题。

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

ArrayList<Customer> customers1 = new ArrayList<Customer>();
ArrayList<CustomerOtherDetails> customers2 = new ArrayList<CustomerOtherDetails>();
ArrayList<ArrayList> outerList = new ArrayList<ArrayList>();

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

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

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

[[new.Customer@3972aa3f], [new.advanced.CustomerOtherDetails@17072b90]]
4

1 回答 1

5

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

这就是你的做法:

public class Customer { 
     // ... other code

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

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

于 2012-10-18T21:35:14.680 回答