Вопрос по java, final, static – Разница между финальной статической и статической финальной

125

Я нашел код, где он объявил код как

private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";

В чем разница между ними или они одинаковые? Или это отличается дляprivate или жеpublic?

Если они разные, то я полностью отказываюсь от Java. Alex Lockwood

Ваш Ответ

6   ответов
4

Если вы говорите об изменении порядка статики и финала, то да, они одинаковы.

does it differ for private or public?

Нет, вы можете использовать любой заказ в частном и публичном порядке. Разница лишь в том, что частные переменные не будут доступны вне класса напрямую.

33

имание, что то же правило применяется вall контексты, где модификаторы используются в Java.

Однако большинство руководств по стилю Java рекомендуют / предписывают один и тот же конкретный порядок для модификаторов. В этом случае этоpublic static final.

186

8.3.1 - Классы - Модификаторы полей спецификации языка Java,

If two or more (distinct) field modifiers appear in a field declaration, it is customary, though not required, that they appear in the order consistent with that shown above in the production for FieldModifier.

Для полей указанная продукция перечисляет модификаторы в следующем порядке:

@Annotation public protected private static final transient volatile

И для методов:

@Annotation public protected private abstract static final synchronized native strictfp

Для справки, заказ по ссылкеabstract static final.
18
private static final String API_RTN_ERROR= "1";
private final static String API_RTN_ERROR= "1";
static private final String API_RTN_ERROR= "1";
static final private String API_RTN_ERROR= "1";
final static private String API_RTN_ERROR= "1";
final private static String API_RTN_ERROR= "1";

положение первых трех взаимозаменяемо.

0

то же самое. это зависит только от ваших привычек и предпочтений :-). Я использую public static final order для членов и методов тоже

8

private final static String API_RTN_ERROR = "1";

private static final String API_RTN_ERROR= "1";

Похожие вопросы