これは、バイト配列にシリアライズされようとしているクラスです。
public class DummyClass implements Serializable
{
private static transient final long serialVersionUID = -8483859843874771619L;
public String y;
public DummyClass(String y)
{
this.y = y;
}
public String getY()
{
return this.y;
}
}
これはシリアライゼーション実行テストです
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
byte[] bs = null;
try
{
DummyClass dummyClass = new DummyClass("World I Salute you");
out = new ObjectOutputStream(bos);
out.writeObject(dummyClass); // <--- Throws exception here
bs = bos.toByteArray();
}
finally
{
out.close();
bos.close();
}
そしてスタックトレースに関して:
java.io.NotSerializableException: tests.DummyClassTest
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at tests.DummyClassTest.dummyTest(DummyClassTest.java:109)
明らかな質問は、私が間違っていることは何ですか?
乾杯。
編集:
クラス全体
public class DummyClassTest
{
public class DummyClass implements Serializable
{
private static transient final long serialVersionUID = -8483859843874771619L;
public String y;
public DummyClass(String y)
{
this.y = y;
}
public String getY()
{
return this.y;
}
}
@Test
public void dummyTest() throws IOException
{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
byte[] bs = null;
try
{
DummyClass dummyClass = new DummyClass("World I Salute you");
out = new ObjectOutputStream(bos);
out.writeObject(dummyClass);
bs = bos.toByteArray();
}
finally
{
out.close();
bos.close();
}
}
}