1

我必须通过网络通过 tcp 套接字(服务器 > 客户端)传递一个 ArrayList。当我传递和 Arraylist of Strings 时,它工作正常,客户端能够接受 ArrayList 并打印。但是当 ArrayList 关闭对象时,我有很多异常并且它不起作用。请看下面。

服务器

    ArrayList<Database> List = new ArrayList<>(); //Database is a seperate class
    Database item1 = new Database();
            item1.code = "1568";
    item1.name = "Round Table";
    item1.details = "Ikeas best Seller";
    item1.inStock = "17";
    List.add(item1);

...

ObjectOutputStream oout = new ObjectOutputStream(socket.getOutputStream());
oout.writeObject(List);

客户

ObjectInputStream iin =  new ObjectInputStream(socket.getInputStream());
Object items = iin.readObject();

使用此代码,我抛出了许多异常。如果我用字符串类型的数组替换数组,就像ArrayList<String> Items = new ArrayList<>();它会正常工作。有任何想法吗?我在这里真的很累。谢谢你!

4

1 回答 1

1

您放入列表并发送的对象必须实现 Serializable 接口。这也意味着该类中的字段也必须是可序列化的。

于 2013-02-17T15:15:15.887 回答