2012-06-11 7 views
9

La mia domanda: i nomi delle variabili Java costanti (all'interno dei metodi) dovrebbero essere maiuscoli?Devo usare la denominazione in maiuscolo per dichiarare le variabili costanti java?

Sono sempre stato sotto l'impressione che

a) se una variabile non è mai andare a cambiare, dovrebbe essere dichiarata finale (per vedere/far rispettare che non cambierà) b) dovrebbe essere nominato in maiuscolo

Tuttavia, ho notato in Eclipse, quando si cambia una variabile (all'interno di un metodo) per essere definitiva/costante, e successivamente refactoring/ridenominazione a qualcosa come di seguito:

final int NODE_COUNT = 3; 

Ricevo il seguente avviso:

Questo nome è sconsigliato. Secondo la convenzione, i nomi delle variabili locali dovrebbero iniziare con una lettera minuscola.

Ciò mi fa chiedere se la regola del maiuscolo non si applica in questo caso (cioè la variabile finale all'interno di un metodo).

+1

scusa per essere irriverente ma qualcun altro trova divertente la frase "variabili costanti"? – PeteH

+2

Su ri-lettura mi rendo conto che questo è un ossimoro, e dovrebbe probabilmente essere variabili finali (???), ma se non mi sbaglio, una volta che una variabile finale è stata dichiarata, è _is_ finale, e così a quel punto diventa anche non-variabile, rendendo di nuovo "variabile finale" un ossimoro. C'è un altro modo per descriverlo? – Jonny

+1

+1 jonny, per favore non pensarci troppo! – PeteH

risposta

5

All'interno dei metodi non si hanno costanti, si hanno solo variabili locali, che possono essere final. Quindi usare il normale camelCase partendo da lettere minuscole si adatta perfettamente lì.

2

Le costanti di classe devono anche essere static (rendendole di livello di classe anziché di livello di istanza), nel qual caso Eclipse non ti avviserà sull'uso di Maiuscolo.

Le costanti di metodo devono avere identificatori che iniziano con una lettera minuscola, quindi sono d'accordo con la vostra conclusione.

+0

Grazie, sebbene all'interno di un metodo quando aggiungo 'static', ottengo un 'modificatore illegale per il parametro NODE_COUNT; solo l'errore finale è permesso ', supponendo quindi che non potrei usare la statica all'interno di un metodo. – Jonny

+0

@jonny non è possibile aggiungere il modificatore 'static' alla variabile all'interno di alcun metodo (non importa se è statico o meno). Il metodo è di essere dinamici - tu hai la tua logica lì, quindi la sua parte non può essere definita come statica .... comunque di coraggio puoi usare i campi statici della tua classe, quelli sono costanti. – dantuch