for (int i = 0; i < row.findRowNumber(); i++) {
String[] itemTokens = rawInventory[i].split("\\s");
inventory[i] = new Item(itemTokens[0], Integer.parseInt(itemTokens[1]));
}
for (int i = 0;i < inventory.length; i++) {
System.out.println(inventory[i]);
}
我想访问名为inventory的对象的结构数组。如果我测试println,结果会是:
Item@629a99eb
Item@13ef45e0
Item@41d47f59
Item@65f4cdd2
Item@2af4ca49
Item@2d0c94a7
Item@14f3770c
Item@7c0cbf92
Item@28f549de
Item@7fc4a2d3
Item@469e0c2d
Item@32318293
Item@50739aa3
Item@55ad6c98
那么如何在java中处理对象数组呢?谢谢
发布于 2011-11-04 18:27:36
你应该为你的数据结构Item
实现toString()
,然后它将在System.out.println()
上被调用。
例如:
String toString() {
return getName() + " " + getAmount();
}
如果我们假设您使用getName()
获取名称,使用getAmount()
获取金额。
发布于 2011-11-04 18:27:40
System.out.println(inventory[i]);
inventory list包含的是Item
的对象,所以inventoryi会给你返回Item的对象。
现在为了打印,调用项目的getter、setter或字段名。
例如,Item类有两个实例变量x,y,它们是在构造函数中设置的。那么你能做的就是
System.out.println(inventory[i].getX());
如果'x‘是公共的,那么只需
System.out.println(inventory[i].x);
或者像其他人所说的那样,覆盖toString()方法。
发布于 2011-11-04 18:28:27
只需覆盖Item类的方法toString()
https://stackoverflow.com/questions/8007824
复制相似问题