我声明一个字段:
private static final String filename = "filename.txt";
首先,顺序private static final
重要吗?如果没有,是否有标准的公认顺序或约定?
其次,filename
在我的应用程序中是固定的。这是最好的存储它的价值吗?
我在 Eclipse 中使用Checkstyle,如果声明的顺序与您指定的顺序不同,则会发出警告,并引用 Java 语言规范 (JLS)。例如,
private final static String filename = "filename.txt";
结果是
'static' modifier out of order with the JLS suggestions.
他们有这个页面,其中列出了他们期望的顺序,尽管按照该页面上的链接到JLS,我看不到任何东西来支持他们对建议顺序的断言。
话虽如此,他们建议的顺序似乎与我见过的大多数代码中的顺序相对应,因此它似乎与采用任何约定一样好。
不,但这是我通常看到使用的顺序。
这是一个合理的选择,但有些人更喜欢配置文件,属性或其他文件格式(例如 XML)。这样,您无需重新编译即可更改文件名。
在 Java 中给常量(static final
值)一个全大写的名字是很常见的,所以我会写:
private static final String FILENAME = "filename.txt";
另请参阅Java 编程语言的代码约定。(这些是大多数 Java 程序员使用的 Sun 的代码约定)。
这些关键字中最被接受的顺序是private static final
. 您还可以使用PSF模式记住这些关键字的顺序:
P => 私有 / 公共 / 受保护
S => 静态 / 抽象 / ...
F => 最终
请参阅:http ://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.3.1
8.3.1 字段修饰符
FieldModifiers:
FieldModifier
FieldModifiers FieldModifier
FieldModifier:
Annotation public protected private
static final transient volatile之一
...
如果两个或多个(不同的)字段修饰符出现在字段声明中,尽管不是必需的,但习惯上它们的出现顺序与上面在 FieldModifier 的产生式中显示的顺序一致。
顺序无关紧要,但您可以随时使用它 - 只有 6 种可能性进行测试。
我不知道有任何约定,尽管我将可见性修饰符放在首位(公共/私有/受保护),这样您就可以看到它并排成一行。
如果它是固定的,那么你可以这样做,但我总是认为某些东西是一个常量,只是稍后(例如在测试期间)发现我想要传递它。命令行上的参数或属性文件适用于这种情况, 并且是最简单的设置。