将对象数组转换为字符串数组

3

我有一个物品类,包含诸如itemName、price等数据,当卖家想要销售某些物品时,我会向其中添加数据,如下所示:

public void sellItem(String itemName, double Price) throws java.rmi.RemoteException, Exception {
    items.add(new Item(itemName, price)); 

然后我将列表中的所有项目返回,以便卖家/买家可以浏览列表。

public ArrayList<Item> listItems() {
    return items;
}

接下来,我正在努力填充JGroups实例,以便允许此“项”数据在实例之间进行复制。当一个项目被列出时,我将其转换为一个对象:

/* Create a new ItemObject containing the Items used for JGroups later */
public void createItemObject() throws Exception {
    Object[] objArray = items.toArray();
    FileOutputStream fis = new FileOutputStream("io");
    ObjectOutputStream itemObject = new ObjectOutputStream(fis);
    itemObject.writeObject(objArray);
    itemObject.close();
    fis.close();
}

每个复制服务器实例将以此对象作为输入,并希望将此对象中的数据打印到其终端窗口:
static Object io = new Object();
public static void getAuctionObject() throws Exception {

    FileInputStream fis = new FileInputStream("io");
    ObjectInputStream auctionObjectIn = new ObjectInputStream(fis);
    ao = auctionObjectIn.readObject();
    auctionObjectIn.close();
    System.out.println("Received object at Front End:  " + ao);
    //Print out item data.....
}

然而,我该如何遍历此对象并打印出物品数据,例如“itemName”,“price”等等?

5
重载该类的.toString()方法可能会有帮助。然后你就可以直接调用.toString() - ryanyuyu
1
另一方面,许多Java代码使用.toString()进行基本调试。如果您对格式良好的字符串有不同的要求,请考虑添加一个新的字符串方法inventoryString()或类似的内容,以按您需要的方式打印格式化的字符串。 - markspace
1个回答

3

要使每种类型返回格式正确的字符串,请覆盖对象上的toString()方法。

或者,如果您想保留原始的toString()方法不变,请创建一个新的interface,该接口由您想要打印的所有对象类型共享,并通过所有这些对象提供相同的“共享方法”,每种对象类型指定接口方法的行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接