シンプルなJava Gmailクライアントをプログラミングして、レベルプロジェクトを完成させています。 次のコードセクションが実行されると、私は常にエラーになります。 エラーの原因がわかりません。シリアライズ可能なファイルに書き込むときにエラーが発生する
public static void save(List<user> u3){
try {
FileOutputStream fos=new FileOutputStream("users.ser");
ObjectOutputStream oos= new ObjectOutputStream(fos);
oos.writeObject(u3);
}catch (Exception e) {
e.printStackTrace(); //Added due to suggestion of commentor
}
}
エラーがある:
java.io.NotSerializableException:ユーザ java.io.ObjectOutputStream.writeObjectでjava.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) (AT sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でjava.util.ArrayList.writeObject(ArrayList.java:762) でObjectOutputStream.java:348) (NativeMethodAccessorImpl.java:62 ) at sun.refle ct.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988) at java。 io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) at java.io.メイン・サヴェ(main.java:65) (main.java:42) at __SHELL12.run(__SELELL12.java:6) at sun。 reflection.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)java.lang.reflect.Method.invoke(Method.java:497)でsun.reflect.NativeMethodAccessorImpl.invoke sun.reflect.DelegatingMethodAccessorImpl.invokeで(NativeMethodAccessorImpl.java:62) (DelegatingMethodAccessorImpl.java:43) で at bluej.runtime.ExecServer $ 3.run(ExecServer.java:730)
ユーザクラスはSerializableを実装していますか? – Dakoda
メインクラスまたはユーザークラス?それらのどちらも直列化を実装していません – SpeedProgrammer
Javaでオブジェクトをシリアル化する方法(https://www.tutorialspoint.com/java/java_serialization.htm)をお読みください – Tezra