2016-09-28 6 views
0

私はArrayListを保持するクラスを持っています。 私はその配列からすべての項目を、testClassのgetOrderItemsメソッドを呼び出すことで印刷できるようにしたいと思います。配列要素が返される方法に問題があります。ここでJavaのArrayListの要素を印刷する

はクラスである:ここでは

package shopping; 

import java.util.ArrayList; 

public class ShoppingCart { 
    private ArrayList<Item> list; 


    public ShoppingCart() { 
     this.list = new ArrayList<Item>(5); 
    } 

    public void addItem(Item item1) { 
     this.list.add(item1); 
    } 

    public int getTotal() { 
     int total = 0; 

     for(Item it : list) { 
      total = total + it.getCost(); 
     } 
     return total; 
    } 

    public void removeItem(Item item1) { 
     this.list.remove(item1); 
    } 

    public int finalizeOrder() { 
     int cartSize = this.list.size(); 
     return cartSize; 
    } 

    //print elements from ArrayList<Item> 
    public String getOrderItems() { 
     System.out.println(this.list); 
    return null; 
    } 

} 

がTestClassをからブロックです:

//email possible & create 
     int emailPossible = card.verifyCard(); 
     if (emailPossible > 0) { 
      System.out.println("Email object has been added"); 
      System.out.println("Your orders was successful and has been placed.\nHere are the details of your order: \n"); 
      System.out.println("Items:\n------"); 
      System.out.println(cart.getOrderItems()); 
     }else{ 
      System.out.println("Email object has not been added"); 
     } 
     //end email possible & create 

しかし、私の出力は、各項目とない項目自身のアドレスを印刷するように表示されます。

Email object has been added 
Your orders was successful and has been placed. 
Here are the details of your order: 

Items: 
------ 
[[email protected], [email protected], [email protected]] 
null 
+0

[Object#toString](https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString())をオーバーライドするか、または印刷するフィールドにアクセスします方法。 – SomeJavaGuy

答えて

0

toString()メソッドを無効にする必要があります10クラス。オブジェクトをカスタム方法で印刷することができます。

0

クラスのオブジェクトのスーパークラスメソッドをオーバーライドすることでtoStringを実装すると、リストは参照ではなく文字列として出力できます。

関連する問題