0

拡張および実装java.io.notserializableExceptionするクラスでサーバーにオブジェクトを書き込もうとするとエラーが発生しますが、拡張するとうまくいきましたjpanelserializablejframe.

コードは次のとおりです。

//to send to server 
objectoutputstream out = new objectoutputstream(socket.getoutputstream()); 
out.writeobject(myobject); 

//to receive in server 
objectinputstream in = new objectinputstream(socket.getinputstream()); 
in.readobject();

助けてくれてありがとう。

4

3 に答える 3

2

JPanel (Java 2 Platform SE v1.4.2)から、次のように書かれています。

警告:このクラスのシリアライズされたオブジェクトは、将来の Swing リリースと互換性がありません。現在のシリアライゼーション サポートは、同じバージョンの Swing を実行するアプリケーション間の短期間の保存または RMI に適しています。1.4 の時点で、すべての JavaBeans TMの長期保存のサポートがjava.beansパッケージに追加されました。XMLEncoderを参照してください。

于 2012-06-04T21:01:51.063 に答える
1

@Xeon が言ったように、myobject に impl を提供します。オブジェクトクラスで例外が発生すると言ったように、それは単にクラスまたはクラスメンバー、つまりフィールド(プリミティブ型ではなくオブジェクト)がシリアライズ可能なインターフェイスを実装していないことを意味します。また、そこに myobject を作成するにはどうすればよいですか? 直接 Object myobject = ...
または myobject = .... ?

全員がシリアライズ可能を実装していることを確認してください。

オブジェクト クラスはメソッドを提供しますが、そのシリアライズ可能なインターフェイスを実装していません。そうしないと、Java のすべてのオブジェクトがデフォルトでシリアライズ可能になります。

于 2015-04-12T19:38:44.600 に答える
1

JPanel(インスタンス)の実装には、myobject他のオブジェクトへの参照 (たとえば、プライベート フィールド) があり、それは を実装していませんSerializable。そして、例外を引き起こしているのはその他のオブジェクトです。

于 2012-06-04T20:57:22.607 に答える