[...]
Was solls... jedem das Seine.
Aber was bitte ist am "1L" denn sinnlos? "SupressWarnings" zeugt nicht gerade von gutem Programmierstil und "1L" ist immerhin noch besser als von Kompilat zu Kompilat neu berechnet. Standard halt. Was solls... jedem das Seine.
Wenn man eine SUID angibt, bedeutet das: Man kann Objekte zwischen verschiedenen Klassenversionen de-/serialisieren und die Anwendung ist dafür ausgelegt... da ist ein großes Risiko mit verbundenWenn man eine UID angibt, bedeutet das für mich, dass man die Klasse serialisieren will.
Richtig, das sind darüber hinaus die technischen Auswirkungen, ich meinte eher die Intention des Entwicklers (d.h. wenn man die abgeleitete JComponent niemals in einen Object-Stream steckt, ist die Gefahr eines Versionskonflikts eher geringWenn man eine SUID angibt, bedeutet das: Man kann Objekte zwischen verschiedenen Klassenversionen de-/serialisieren und die Anwendung ist dafür ausgelegt...
Naja... Wenn ich es mir recht überlege, ist da durchaus was dran. Vor allem dass man bei definierter SUID (bis auf eine Exception beim deserialisieren) gar nicht mehr merkt, das zwischen verschiedenen Versionen serialisiert wurde. Aber es ist doch eine Empfehlung von Sun, sie zu definieren. Darf man sich inzwischen schon aussuchen, an welche Konventionen man sich hält oder nicht? Mir geht diese Warnung im übrigen auch auf den Sender. Vorallem, wenn die Klasse niemals zum serialisieren gedacht ist. Was ich aber viel haarsträubender finde, ist, jemals irgendwo Warnungen unterdrücken zu müssen ([OT]... das geht mal direkt an GENERICSWenn man eine SUID angibt, bedeutet das: Man kann Objekte zwischen verschiedenen Klassenversionen de-/serialisieren und die Anwendung ist dafür ausgelegt... da ist ein großes Risiko mit verbunden
Es ist ganz und gar kein guter Stil immer eine SUID zu haben, besonders wenn man eben nicht zwischen verschiedenen Versionen de-/serialisieren will, die Gefahr sollte selbsterklärend sein
Leider hat Eclipse das in den Standardeinstellungen, und somit halten Leute es für eine gute Sache, obwohl sie es nicht ist.
Wenn ich keine SUID angebe, wird bei jedem kompilieren eine neue erzeugt, und ich merke garantiert falls ich verschiedene Versionen der Klassen habe
Wenn man also nur Objekte zwischen gleichen Verisonen der Klasse de-/serialisieren will, sollte man auf jedenfall keine SUID vergeben und der Compiler & die Laufzeitumgebung stellen sicher dass das so bleibt, das ist der Standardfall.
Ist leider nicht das erste mal dass man die Empfehlung von Sun ignorieren sollte, zB. in JPA 1.0 wurde empfohlen die Annotationen an die Getter/Setter zu machen, was auch quatsch ist und in JPA 2.0 korrigiert wurde, was aus J2EE geworden ist brauche ich ja nciht mehr zu erwähnen, mittlerweile orientieren sich die in einigen Punkten stark an Spring.Aber es ist doch eine Empfehlung von Sun, sie zu definieren. Darf man sich inzwischen schon aussuchen, an welche Konventionen man sich hält oder nicht?