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

时间:2015-12-03 19:05:22

标签: java arrays object jgroups

我有一个项目类,其中包含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实例,以允许跨实例复制此“Item”数据。列出项目后,我转换为对象:

/* 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.....
}

但是,我如何实际迭代此对象并打印出Item数据,例如'itemName','price'等?

1 个答案:

答案 0 :(得分:3)

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

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