2015-03-25 72 views
0

我的主要類代碼數組列表不顯示正確的輸出

{ 
    ArrayList<Item> items = new ArrayList<Item>(); 
    Scanner file = new Scanner(kk.class.getResourceAsStream("product.txt")); 
    while (file.hasNextLine()) { 
     String[] sp = file.nextLine().split(","); 
     // extract item number, description, price and type 
     itemNum = Integer.parseInt(sp[0]); 
     des = sp[1]; 
     price = Integer.parseInt(sp[2]); 
     Item objt = new Item(itemNum, des, price); // Creating a new object 
     items.add(objt); // Adding it to the list 
    } 
    System.out.println(items); 
} 

輸出我得到

[[email protected][email protected][email protected],dada.Item @ 5b4c92a7,[email protected]

我的物品類別代碼

private int itemNum = 0; 
private String des = ""; 
private int price = 0; 

public Item(int i, String d, int p) { 
    itemNum = i; 
    des = d; 
    price = p; 
} 
+0

什麼是應該做你的代碼?你還嘗試過什麼? – PatJ 2015-03-25 00:43:12

+0

我想arrayList存儲我的文本文件中的數據 – 2015-03-25 01:14:35

回答

2

要打印的Item參考的地址而不是您的Item對象內的字段。通過遍歷它們,您可以在每個Item對象內打印字段。

替換該行

System.out.println(items); 

for(Item i : items) 
{ 
    System.out.println(i.getItemNum()+" "+i.getDes()+" "+i.getPrice()); 
} 

更改類,讓你可以訪問你的私人領域

private int itemNum = 0; 
private String des = ""; 
private int price = 0; 

public Item(int i, String d, int p) { 
    itemNum = i; 
    des = d; 
    price = p; 
} 

public void setItemNum(int itemNum) { 
    this.itemNum = itemNum; 
} 
public int getItemNum() { 
    return itemNum; 
} 

public void setDes(String des) { 
    this.des = des; 
} 
public String getDes() { 
    return des; 
} 

public void setPrice(int price) { 
    this.price = price; 
} 
public int getPrice() { 
    return price; 
} 
+0

我試着你的代碼仍然沒有得到正確的輸出。輸出的例子,我有 [email protected] [email protected] [email protected] – 2015-03-25 01:16:31

+0

您應該怎樣輸出樣子?我認爲你正在將對象存儲在你的數組中。請在這裏發佈您的要求輸出。同時顯示您的物品類文件 – Prudhvi 2015-03-25 01:18:02

+0

@MeroRai我改變了我的答案,看看它是否有效。但我回答的基礎是假設你的物品類有公共字段itemNum,des,price。如果你能顯示你的Item類,我可以幫你解決它。 – Prudhvi 2015-03-25 01:23:42