2012-04-03 10 views
5

Perché esistono due costanti definite nella classe java.awt.Color? Per esempioQual è lo scopo di java.awt.Color.blue e java.awt.Color.BLUE

public static final Color blue; 
public static final Color BLUE; 

Questo è ovviamente ridondante. Esiste uno scenario di utilizzo specifico, ad esempio una best practice in cui il colore maiuscolo è preferibile rispetto al colore minuscolo o viceversa?

+1

per me stesso, preferisco sempre costanti UPPER_CASE –

+1

Le costanti minuscole sono state create prima che le convenzioni di denominazione siano state completamente ridimensionate. Poi sono stati creati quelli maiuscoli, ma quelli in lettere minuscole sono rimasti per compatibilità all'indietro. –

risposta

5

È una convenzione di denominazione.

Java originariamente definito un paio di colore nomi costanti in minuscolo, che violato la regola di denominazione di utilizzare lettere maiuscole per le costanti. Questi sono meglio usare dal momento che sono disponibili in tutte le versioni di Java: Color.black, Color.darkGray, Color.gray, Color.lightGray, Color.white, Color.magenta, Color.red, Color.pink, Color.orange, Color.yellow, Color.green, Color.cyan, Color.blue

Java 1.4 aggiunti i nomi maiuscoli corretti per le costanti: Color.BLACK, Color.DARK_GRAY, Color.GRAY, Color.LIGHT_GRAY, Color.WHITE, Color.MAGENTA, Color.RED, Color.PINK, Color.ORANGE, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE

Source

+2

Un commento forse? –

+2

@HovercraftFullOfEels - Perché un commento? È una risposta alla domanda. –

+0

Quella pagina, come lo sono i 1.7 (e presumibilmente prima) JavaDocs, è leggermente errata in un aspetto. Sono abbastanza sicuro che fosse in realtà 1.4.1 o (più probabile) 1.4.2 che ha introdotto le varianti maiuscole. –

3

Essi sono sinonimi. I nomi in maiuscolo sono stati introdotti in Java 1.4 per conformarsi allo Sun's naming conventions (vedere la Sezione 9) per le costanti.