Questo problema non mi sembra di averlo mai avuto in passato, non capisco perché salti fuori ora(sarà l'aggiornamento all'update 1.6.0.17 che ho fatto?!)
Comunque questa è la mia semplicissima classe:
E' una semplice eccezione.codice:public class EmptyStackException extends RuntimeException { public EmptyStackException() {} public EmptyStackException(String message) { super(message); } }
Il compilatore mi dà un warning:
Fino a venti minuti fa non avevo la più pallida idea di che cosa fosse un classe che implementa Serializable."serializable class EmptyStackException has no definition of serialVersionUID"![]()
In effetti la mia eccezione estende RuntimeException che estende Exception che estende Throwable che implementa serializable![]()
Dopo aver letto qualcosa su google ho capito che il compilatore si aspetta un una costante privata all'interno della mia classe (cioè il serialVersionUID). Se non ho capito male rappresenta la versione della classe (e andrebbe aggiornato incrementandolo ad ogni modifica della classe...) e permette alla JVM di usare oggetti riferiti ad una precedente esecuzione della JVM (ha senso quello che ho scritto?)
Tutto molto bello ma....
A livello pratico come posso togliere quel warning?
Aggiungo la costante richiesta? E se sì da cosa parto? "1L"?
Questo a livello pratico cosa potrà mai modificare nell'esecuzione del mio programma? Nulla?![]()