ArrayList打印/添加对象

时间:2014-11-10 21:46:22

标签: java arraylist rmi

我仍然试图通过使用Java RMI创建一个拍卖系统来自学Java,所以如果这很简单,请耐心等待。

我在服务器类中创建了一个ArrayList,就像这样;

public class auctionServer {

    public static ArrayList<ItemInfo> itemSet = new ArrayList<ItemInfo>();

    public auctionServer() {
         try 
         {
            System.out.println("Array list created...");
            LocateRegistry.createRegistry(1099);
            auctionInterface aImpl = new auctionImpl();
            Naming.rebind("rmi://localhost/AuctionService", aImpl);
            System.out.println("Server running.....\n");
         } 
         catch (Exception e) {
             System.out.println("Server Error: " + e);
         }
    }
    public static void main(String args[]) {
        new auctionServer();
    }
}

然后我创建了一个&#34;客户端&#34;可以创建auctionItems并将它们添加到存储在拍卖服务器上的列表中。但是,当我打印服务器上的arraylist的内容时,它只打印该客户端添加的对象。

例如,我开始了一个&#34; sellerClient&#34;创建一个项目并列出它。这将对象添加到服务器中,当我打印arraylist的内容时,它打印正常。

然后我开始另一个&#34; sellerClient&#34; (在不同的cmd行中)当我来打印arraylist的内容时,它表明arraylist是空的。我很难理解为什么,即使服务器在创建第一个和第二个客户端期间仍在运行,它也表示它是空的。

以下是我用来将对象添加到服务器的arraylist的代码;

ItemInfo createdItem = new ItemInfo();

System.out.println("---- Enter the auctionName ----");  
createdItem.setAuctionName(scanner.next());

System.out.println("---- Enter the auctionID ----");
createdItem.setAuctionID(scanner.nextInt());

System.out.println("---- Enter the item startPrice in pound sterling ----");
createdItem.setCurrentPrice(scanner.nextInt());

System.out.println("---- Enter the buyoutPrice in pound sterling ----");
createdItem.setBuyoutPrice(scanner.nextInt());

auctionServer.itemSet.add(createdItem);
System.out.println("Item listed!");

我使用for循环打印数组列表的内容;

for(ItemInfo createdItem : auctionServer.itemSet){
    System.out.println(createdItem.auctionName);
    System.out.println("AuctionID: " + createdItem.auctionID);
    System.out.println("Current Price: £" + createdItem.currentPrice);
    System.out.println("Buyout Price: £" + createdItem.buyoutPrice);    
}

非常感谢任何帮助。

MichaelGG。

0 个答案:

没有答案