Unë kam një enum JJJ që ka 3 vlera: A, B dhe C. Në versionet e mëparshme të programit tim kishte një vlerë shtesë: D. Do të doja të isha në gjendje të lexoja në objektet e serializuara të krijuara nga versionet e mëparshme të program, por bëhet një përjashtim kur ndeshet me një variabël të tipit JJJ me vlerë 'D' në objektin e serializuar. Në mënyrë optimale, do të doja të jem në gjendje të përgjoj procesin e deserializimit dhe t'i them që thjesht të vendosë D-të në C-të kur i ndesh ato.
Sipas http://docs.oracle.com/javase/6/docs/platform/serialization/spec/serial-arch.html (Serializimi i konstanteve të Enumit), nuk duket se ka një mënyrë të thjeshtë për ta bërë këtë... Unë e di se një qasja do të ishte të anashkaloni readObject në klasat që përmbajnë variabla anëtare të tipit JJJ, por kjo do të ishte e vështirë dhe e dhimbshme për shkak të madhësisë dhe shtrirjes së programit (dhjetëra klasa të serializueshme kanë vars anëtarë të tipit JJJ dhe readObject mbizotërues për të trajtuar Fusha JJJ do të thotë që do të më duhej të trajtoja manualisht të gjitha fushat e tjera gjithashtu).
Unë jam përpjekur gjithashtu ta zgjidh këtë duke rrotulluar nënklasën time të ObjectInputStream, por për fat të keq, bitet e deserializimit të numrit që duhet të marr dhe të anashkaloj për ta zgjidhur këtë janë të gjitha private ose private të paketave...
Ndonjë sugjerim?