-1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class clsWarehouse {

private static int iChoice;
private int iItemID;
private String strItemName;
private String strItemDescription;
private int iItemPrice;
private String strSize;
private String strSex;


public clsWarehouse (int id, String name, String description, int price, String size, String sex){
    iItemID = id;
    strItemName = name;
    strItemDescription = description;
    iItemPrice = price;
    strSize = size;
    strSex = sex;   
}

public ArrayList <clsWarehouse> AllItems;
    public clsWarehouse(){
        AllItems = new ArrayList <clsWarehouse>();  
        AllItems.add(new clsWarehouse(3, "T-Shirt", "Male T-Shirt", 30, "15", "Male"));
        System.out.println(AllItems);
    }

public static void main(String[] args){
    clsWarehouse c = new clsWarehouse();
    }
}
 }

您好,我想获取存储在 ArrayList AllItems 中的值,但我得到的只是内存位置 [clsWarehouse@a83b8a]。有人可以帮我弄这个吗。

谢谢!

4

3 回答 3

3

你需要toString()在你的clsWarehouse类中覆盖。内部System.out.println调用toString()列表中对象的 。由于您的类中没有toString()覆盖该方法,因此您将得到以下输出。

getClass().getName() + '@' + Integer.toHexString(hashCode())

以上是类的toString()实现Object

更新:-

在您的clsWarehouse课程中,添加以下方法。

public String toString(){
    return  "clsWarehouse"; //Modify this to return whatever you want to display in your sysout.
}
于 2013-04-22T10:12:30.900 回答
0

您需要遍历数组列表以获取值。还需要使用 toString() 将这个家伙转换为字符串格式。然后,

 for (int i=0;i<AllItems .length();i++){
 //Then get the values one by one
 }

希望这可以帮助你。

于 2013-04-22T10:22:20.410 回答
0

在 clsWarehouse 类中添加此方法

public String toString(){
    return  "iItemID: " + iItemID +" strItemName: "+ strItemName + " strItemDescription: "+ strItemDescription +" iItemPrice  "+ iItemPrice: + " strSize: " + strSize + " strSex: "+strSex; 
}

改变这个

System.out.println(AllItems);

for(clsWarehouse item : AllItems){
     System.out.println(item.toString());
}
于 2013-04-22T10:24:47.403 回答