2010-12-03 3 views
0

次のコードは、例外がスローされます:持つNotSerializableException問題

public class TestObject implements Serializable{ 

    private static final long serialVersionUID = 1L; 

    public String value; 

} 


DbByteArrayOutputStream out = new DbByteArrayOutputStream(); 
ObjectOutputStream objOut = new ObjectOutputStream(out); 
objOut.writeObject(objOut); 
objOut.flush(); 
out.writeTo(file); 
objOut.close(); 
out.close(); 

public class DbByteArrayOutputStream extends ByteArrayOutputStream { 
    public DbByteArrayOutputStream() { 
    super(); 
} 

public synchronized void writeTo (RandomAccessFile file) throws IOException { 
    byte[] data = super.buf; 
    int l = super.size(); 
    file.writeInt(l); 
    file.write(data, 0, l); 
    } 
} 

なぜ?ありがとう。

答えて

6

これは問題です:

ObjectOutputStream objOut = new ObjectOutputStream(out); 
objOut.writeObject(objOut); 

あなたは自分自身へのストリームをシリアル化しようとしています。それはまったく意味がありません。あなたが意味すると思う:

objOut.writeObject(new TestObject()); 

またはそれに類するもの。

+0

愚かなエラーです。ごめんなさい。 – ilpizze

+0

ilpizzeの答えを受け入れてください。あなたもポイントを得る:) – Vituel

+0

@Vituel:ええと、何? ilpizzeが*質問*をしました...私は答えを出しました。 –