Witam,
Tworzę prostą listę jak poniżej:
String[] names = {"Ola", "Ala", "Ela", "Ewa", "Jan"};
int[] numbers = {3, 4, 5, 6, 7, 8};
List<Obiekt> objList = new ArrayList<Obiekt>();
for(int i = 0; i < names.length; i++){
objList.add(new Obiekt(names[i], numbers[i]));
}
Następnie chciałbym ją zapisać do pliku. Do tej pory (dla "zwykłych" obiektów) robiłem to za pomocą ObjectOutputStream i nie było żadnego problemu. Napisałem więc taką samą metodę dla mojego obiektu:
public boolean write(List lk){
try{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("ksiazki.data"));
out.writeObject(lk);
out.close();
return true;
}catch (IOException e){
e.printStackTrace();
return false;
}
}
Niestety wywala błąd:
java.io.NotSerializableException: kontener.Obiekt
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
false
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at kontener.ReadWrite.write(ReadWrite.java:11)
at kontener.Main.main(Main.java:41)
Czy ktoś może mi pomóc i powiedzieć co robię źle, ewentualnie podać sposób na zapisanie tego obiektu do listy.
Z góry dziękuję.