Può NetBeans generare un ID versione seriale automatica per una classe Java?
-
21-09-2019 - |
Domanda
Vorrei rimuovere alcune avvertenze per alcune classi generando un serial ID automatica versione. In Eclipse, questo è banale da fare - l'IDE in grado di generare automaticamente uno e aggiungerlo alla classe. Tuttavia, non vedo questa funzionalità in NetBeans. È disponibile? Se cosi, dov'è? In caso contrario, c'è un plugin che può attivarla?
Soluzione
In realtà la mia soluzione a questo "problema" è stato quello di disattivare tale avvertimento nella mia configurazione del progetto (io uso Eclipse, ma credo che per NetBeans è lo stesso) come IMHO è un avvertimento sbagliato: non avere un serialVersion è la scelta più sicura in quanto la JVM calcola uno che è unica sul lancio (qualcosa come l'hash della classe), mentre l'aggiunta in modo esplicito poi grava di prendersi cura di aggiornarlo se e solo se sono state apportate modifiche incompatibili al codice.
Quindi, se non si cura di quello, è meglio evitare che il valore (in questo modo è compatibile solo con la versione che sono compatibili di sicuro , ma con alcuni falsi positivi: si pensa che sia non è compatibile, ma in realtà sarebbe) invece di mettere lì un valore fisso che si sarebbe (forse, nel mio caso) dimenticare di aggiornare quando necessario, portando ad errori di validità reali (falsi negativi: si pensa che sia compatibile ma non è).
Altri suggerimenti
Sembra fuori dalla scatola NetBeans non supporta la funzionalità, ma i plug-in.
Si prega di dare un'occhiata a
Questa è banale da fare manualmente, così, a meno che non è necessario rimanere compatibile con le istanze serializzati esistenti. Basta copiare questa linea nella classe:
private static final long serialVersionUID = 1L;
Si noti che non v'è assolutamente alcun obbligo per il serialVersionUID
di essere univoco in classi.
Per disattivare questi avvisi in NetBeans:
- Apri: Strumenti -> Opzioni
- Apri: Editor -> Suggerimenti scheda
- Seleziona lingua: Java
- avvertimenti Deseleziona standard javac -> serializzazione
- OK
Ho dovuto anche per cancellare ~ / .netbeans / 6,8 / var / cache e riavviare Netbeans per cancellare gli avvertimenti dall'elenco Attività.
(Per utente in cui chiedere stessa domanda ora)
I 'm utilizzando nb7.4 e ho trovato questo plugin da nb6.5 a nb7.4
plug
L'ho provato in nb7.4 e lavorare bene.
Per il significato versione Servial id sguardo
serialVersionUID
se si aggiunge in modo esplicito si può fare tutti i cambiamenti alla vostra classe senza modificare UID fino ad avere non la classe serializzato e memorizzare da qualche parte:
se si crea la classe A serializzare esso
concluderà poi memorizzarlo su base di dati
Fine quindi cambiare classe A fare non più compatibile con la vecchia classe A,
quando qualcuno tenta di caricare l'oggetto serializzato dall'ultima classe A per la nuova classe A può avere problemi.
Quando si cambia classe A e renderlo incompatibile con l'ultima classe A è necessario modificare uid quindi se qualcuno tenta di caricare otterrà InvalidClassExceptions.