我正在尝试查找有关订购类属性属性的最佳方法的文档,例如private / protected / public,final,static,type。
我会发一个例子来看看我的意思。
class A {
public final static int FOO = 3;
final public static int FOO = 3;
}
好的,我假设attrbiute类型(int,String,char)在属性名称之前。
我真正怀疑的是当我尝试定位静态,最终和v
时答案 0 :(得分:7)
语言规范只说修饰符必须在类型之前,因此int
最后。
修饰符包括类型参数,注释,访问修饰符(私有,受保护,公共),static
,final
,synchronized
,strictfp
,volatile
,{{1它们(来自“允许编译器的东西”)可以按任何顺序出现。
前几天我进行了谷歌搜索,transient
比static final
更频繁,所以这有助于订购: - )
我认为通常这种修饰符的顺序是最常见的:
final static
static
final
(仅适用于字段)transient
(仅适用于变量)volatile
(仅适用于方法)我从未使用synchronized
或strictfp
,但我认为我会把它们放在native
附近。
答案 1 :(得分:2)
您可以将默认顺序作为Java语言规范中出现的顺序。 http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#29882
答案 2 :(得分:1)
当我关心时,我按照checkstyle的ModifierOrder检查顺序[1](引用链接页面):
检查修饰符的顺序是否符合中的建议 Java语言规范,第8.1.1,8.3.1和8.4.3节。该 正确的顺序是:
- 公共
- 保护
- 私有
- 抽象
- 静态
- 最终
- 瞬态
- 易失性
- 同步
- 天然
- strictfp
醇>
答案 3 :(得分:0)
回答了你自己的问题:
private / protected / public,static,final,type
答案 4 :(得分:0)
字段(类,方法)修饰符的顺序无关紧要。当我们查看方法签名时,它们只是标志。
因此,如果您想使用固定订单,则只是为了便于阅读。如果你总是在编译单元中使用相同的顺序,那么你的代码看起来会更好。
但同样,顺序对字节代码没有影响。忘记微优化;)