2013-06-17 4 views
3

У меня есть следующий код: компиляцияокончательных статического против статического конечных переменных

final static String test = "A"; 
static final String test2 = "B"; 

И все отлично компилируется. Мой вопрос в том, в чем разница между этими двумя?

+0

Они точно такие же. См. Http://stackoverflow.com/questions/11219556/difference-between-final-static-and-static-final – Bathsheba

+0

Короче говоря, они могут использоваться в любом порядке, нет технической разницы, так как несколько других ответы здесь и ссылаются на указанное состояние ссылок. – Lion

ответ

2

Нет никакой разницы. Порядок, в который вы помещаете ключевые слова, не имеет значения.

12

The order of those modifiers isn't mandatory, as stated in the Java Specification:

FieldModifiers: FieldModifier FieldModifiers FieldModifier

FieldModifier: один из аннотаций общественности защищена частной статической окончательная переходная летучий

Но обратите внимание, что спецификация Java вводит наилучшую практику:

Если два или более (различные) модификаторы поля появляются в объявлении поля , то обычно, хотя и не обязательно, что они появляются в порядке в соответствии с показанными выше, в производстве для FieldModifier.

Это означает, что наиболее правильное решение является

static final String test2 = "B"; 

Тем фактом, что большинство кодеров уважать этот «обычай» означает, что их коллега кодеры разобрать и прочитать код быстрее и с большей легкостью.