Hi!
Ich muss für mehrere meiner Klassen equlas() überschreiben.
Da diese Klassen extrem viele Eigenschaften haben möchte ich nicht jede dieser Eigenschaften händisch vergleichen.
Daher habe ich mir folgendes überlegt:
Welche Nachteile bzw. Gefahren hat der Vergleich des serialisierten Objekts (ausser der wahrscheinlich nicht sehr guten Performance)?
mfg
christian
Ich muss für mehrere meiner Klassen equlas() überschreiben.
Da diese Klassen extrem viele Eigenschaften haben möchte ich nicht jede dieser Eigenschaften händisch vergleichen.
Daher habe ich mir folgendes überlegt:
Code:
@Override
public boolean equals(Object obj) {
DemoMock other;
if( obj instanceof DemoMock) {
other = (DemoMock) obj;
}
try {
ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
ObjectOutputStream os1 = new ObjectOutputStream(bos1);
os1.writeObject(this);
os1.close();
ByteArrayOutputStream bos2 = new ByteArrayOutputStream();
ObjectOutputStream os2 = new ObjectOutputStream(bos2);
os2.writeObject(other);
os2.close();
byte[] arr1 = bos1.toByteArray();
byte[] arr2 = bos2.toByteArray();
return Arrays.equals(arr1, arr2);
} catch (Exception e) {
e.printStackTrace();
return <irgendwas>;
}
}
Welche Nachteile bzw. Gefahren hat der Vergleich des serialisierten Objekts (ausser der wahrscheinlich nicht sehr guten Performance)?
mfg
christian