4

我有以下编译代码:

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

一切都编译得很好。我的问题是,这两者有什么区别?

4

2 回答 2

12

这些修饰符的顺序不是强制性的,如 Java 规范中所述

FieldModifiers:FieldModifier FieldModifiers FieldModifier

FieldModifier:Annotation public protected private static final transient volatile 之一

但请注意,Java 规范引入了一个最佳实践:

如果两个或多个(不同的)字段修饰符出现在字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。

这意味着最正确的解决方案是

static final String test2 = "B";

大多数编码人员尊重这种“习惯”这一事实意味着他们的编码人员可以更快、更轻松地解析和阅读代码。

于 2013-06-17T19:17:06.083 回答
2

没有区别。您输入关键字的顺序无关紧要。

于 2013-06-17T19:16:05.243 回答