1

ネットワーク経由でtcpソケット(サーバー>クライアント)を介してArrayListを渡す必要があります。文字列の Arraylist を渡すと、正常に動作し、クライアントは 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 に答える