Nadpisanie metody writeObject() i readObject()

Nadpisanie metody writeObject() i readObject()
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 178
0

Witam,
mam taki problem, chciałbym w czasie serializacji jednej klasy pominąć jakies atrybuty tej klasy, w jaki sposób można nadpisac klase writeObject() żeby je pomijać w czasie serializacji ?

Wiem że można to zrobić przy pomocy "transient", ale nie chce w ten sposób.

NoZi
  • Rejestracja: dni
  • Ostatnio: dni
1

Musisz w obiekcie który ma być serializowany nadpisać te dwie metody.

Kopiuj
private void writeObject(ObjectOutputStream out) throws IOException;
private void readObject(ObjectInputStream in) throws IOException, 
JA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 178
0

no tylko nie chciałbym pisać

Kopiuj
oos.writeInt(x);
oos.writeInt(y);
oos.writeInt(z);

dla wszystkich obiektów, tylko chiałbym wywołac domyslnego writeObject() z pominieciem kilku atrybutów. Jest taka opcja ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Nie. Albo oznaczasz je jako transient albo zapisujesz pole po polu. Oczywiście możesz zrobić cuda na kiju za pomocą refleksji ale nie będzie to ani czytelne ani wygodne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.