Dichiarare il campo come "finale" assicurerà che il campo sia una costante e non possa cambiare. La differenza deriva dall'uso della parola chiave 'statica'.
Dichiarare un campo come statico significa che è associato al tipo e non alle istanze. Ad esempio, solo una copia del campo sarà presente per tutti gli oggetti e non una copia individuale per ciascun oggetto. A causa di ciò, è possibile accedere ai campi statici attraverso il nome della classe.
Come potete vedere, il vostro requisito che il campo sia costante si ottiene in entrambi i casi (dichiarando il campo come "finale" e come "statico finale").
domanda simile è private final static attribute vs private final attribute
Speranza che aiuta
Se questa è una variabile (al contrario di un campo), non può essere statica. – Thilo
Questo è stato discusso prima in questa [domanda] (http://stackoverflow.com/questions/1415955/private-final-static-attribute-vs-private-final-attribute). –
Questo non è un duplicato come attualmente indicato. Questa domanda riguarda l'utilizzo di "statico finale" con una variabile metodo-locale, la domanda collegata lo utilizza come variabile classe/oggetto (al di fuori di qualsiasi definizione di metodo). Penso che la risposta sia che usare "finale" all'interno di un metodo fa quello che ci si potrebbe aspettare da "statico finale" in quel contesto, il più delle volte.Tuttavia, mi chiedo se fosse un oggetto invece di un int, se la mutabilità potrebbe produrre risultati che differiscono da questa intuizione. Non ho provato questo. Qualcuno sa? – Apriori