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

标签 java arrays object jgroups

我有一个项目类,其中包含项目名称、价格等数据,当卖家想要出售某物时,我会添加到其中,如下所示:

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”等?

最佳答案

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

或者,如果你想保持原来的toString()方法完好无损,创建一个新的interface,它被你想要打印的所有对象类型共享,并且通过所有这些对象提供相同的“共享方法”,每个对象类型指定接口(interface)方法的行为。

关于java - 将对象数组转换为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34074142/

相关文章:

java - 在集群运行时更新更改

java - 位置需要许可

将 const char 转换为数组

PHP 检查某些键或值是否在多维数组中

php - 使用PHP的“Notice: Undefined variable”,“Notice: Undefined index”和“Notice: Undefined offset”

javascript - 如何在javascript中访问其他对象内的对象内的属性

java - Java中用于链接文本和音频的数据结构

java - 如何在log4j.properties中使用系统环境变量?

c++ - 类中静态对象的重要性以及它们与一般对象的区别

javascript - 返回深层属性的值(如果存在)