2012-07-09 13 views
18

Cerco di evitare di avere variabili non definitive quando possibile, e farebbe risparmiare qualche digitazione se Eclipse lo automatizzasse per me (anche così non dimentico di farlo). Quello che vorrei è che rilevi quando aggiungo una nuova assegnazione di variabile/dichiarazione di dichiarazione, e non appena ho finito, inserisci il modificatore final.C'è un modo per far sì che Eclipse faccia automaticamente tutte le mie variabili finali?

Esiste un'opzione di configurazione o un plug-in leggero che consentirebbe questo?

risposta

37

È possibile aggiungerlo come 'Salva azione' in modo che ogni volta che si salva un file, Eclipse aggiungerà final alle variabili. Ecco come:

  • Vai a Finestra> Preferenze> Java> Editor> Salva azioni
  • Spuntare Azioni aggiuntive e premere Configura
  • Nella scheda Codice di stile c'è un sezione su Dichiarazioni variabili e si può spuntare Utilizzare il modificatore 'finale' ove possibile. È possibile scegliere tra campi privati, parametri e variabili locali.

Oppure si può fare la stessa cosa manualmente (una volta ogni tanto o per la base di codice esistente) tramite Pulire

+0

Il giorno in cui si rendono conto che le dichiarazioni di cattura e le varsette sono ** non ** identiche alle dichiarazioni var locali, io stesso abilito questa opzione :) Per ora, devo ancora farlo a mano. –

+0

@MarkoTopolnik Per foreach vars (ad esempio, 'for (final Object x: ...) {...}') non c'è molto problema, ma le variabili di iterazione 'for (int i = 0; ...; i ++) {...}', there ' d essere un problema Hai spesso occasione di assegnare per prendere le dichiarazioni? Non vedo molti problemi con 'try {} catch (finale Exception e) {...}' ... –

+4

@JoshuaTaylor Sembra che manchi il mio punto ... il problema è avere tutte quelle parole chiave 'definitive 'che aggiungono rumore a il tuo codice. Quello che preferirei è l'essere * predefinito * e una parola chiave speciale che deve essere applicata per ottenere una variabile mutabile. –

4

È possibile utilizzare il tasto destro del mouse -> origine -> ripulitura. Si dovrebbe prima definire nella parte del codice del formattatore la preferenza che cosa si vuole veramente pulire.

+0

Non lo aggiunge "non appena lo si finisce" ma non si può fare a meno con i modificatori finali durante la digitazione e aggiungendoli alla fine con la pulizia. – YMomb

1

Questo non può essere la soluzione più robusta, ma per primitive e/o tipi si utilizza un sacco si potrebbe definire le macro

int --> final int 
byte[] --> final byte[] 
List --> final List 

mi piace molto l'idea formattatore troppo, ma poi si deve accettare ogni altro pezzo di formattazione che ha, che può essere ingombrante.

2

Checkstyle plugin può fare questo per voi. Devi prima configurare la configurazione del tuo stile check, quindi abilitare il checkstyle nel tuo progetto e lasciare che cambi il tuo codice dopo aver salvato un file java.

Problemi correlati