显示arraylist的元素

时间:2011-03-30 17:17:27

标签: java class arraylist

我试图从另一个类访问toString方法,以便打印数组的元素。

 info += "Purchases:\n";
 for(int index = 0; index < purchases.size(); index++){
     info += "[" + (index + 1) + "] ";
     info += purchases.get(index).toString();
     info += "\n";
 }

我希望代码能够访问Purchases类中的toString以打印出

public String toString(){
    String info;
    DecimalFormat formatter = new DecimalFormat("$#0.00");

    info= (date.get(Calendar.MONTH) +1) + "/" + date.get(Calendar.DAY_OF_MONTH) + "/" + date.get(Calendar.YEAR);
    info += "\t" + vendor + "\t\t";
    info += (formatter.format(amount));

    return info;
}

我该怎么做?

2 个答案:

答案 0 :(得分:0)

你这样做的方式效率低下但是会有效。

你看到的问题是什么?

如果您收到NullPointerException,请调用.toString(),因为无论如何它都会为您执行此操作(除了NPE)

答案 1 :(得分:0)

当你覆盖对象的toString()方法时,你不需要调用它来工作:

myObject.toString();

对于打印数组我建议使用增强型for循环,它更容易。 例如:

List<MyObject> mo = new ArrayList<MyObject>();
for(MyObject s: listObject){
   System.out.print(s);
}

如果MyObject类重写toString()方法,上面的示例将完美地工作 注意:想象一下mo充满了对象。

我认为你正确地覆盖了toString()方法问题就在你的循环中。试试增强的for循环:

for(Purchase p: purchases) {
  System.out.println(p);
}

那应该做的工作