这是我被要求做的功课问题。
创建一个外部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(客户)等将引用变量添加到arrayLists(customers1和customers2)。我被要求做一些示例,例如添加新客户,搜索新客户,从嵌套的ArrayList
中排序等所有这些我目前面临的问题是我无法打印数组列表中引用变量指向的值的详细信息。
当我尝试使用get()打印出值时,我只能打印出这样的
[[new.Customer@3972aa3f], [new.advanced.CustomerOtherDetails@17072b90]]
答案 0 :(得分:5)
您需要覆盖Customer类和CustomerOtherDetails类中的public String toString()
方法。
你就是这样做的:
public class Customer {
// ... other code
@Override
public String toString() {
return "Customer: " + ... ; // append instance variable values here
}
}
toString
方法在基类Object
类中定义,所有其他类都在Java中继承。每当您尝试将对象转换为String时,它都会被隐式调用,例如通过System.out.println
。