0
private static final Logger LOGGER = Logger.getLogger(AbstractDbClient.class);

protected Connection connection;


protected Connection connection;

private static final Logger LOGGER = Logger.getLogger(AbstractDbClient.class);

哪个顺序更适合字段声明?有些书指出应该通过私有/公共/受保护/等来订购它们,如果基于此,第二个代码更好,但看起来很糟糕。如果包含静态最终变量或静态变量?哪个顺序规则是?

4

4 回答 4

6

我建议你保持一致,但我更喜欢按照设置的顺序排列字段,因为这样更容易理解代码和调试它。恕我直言。

 static final fields

 final fields

 mutable fields.
于 2012-08-03T08:20:34.650 回答
4

一个常见的标准是将所有公共变量放在最上面,然后是受保护的,然后是私有的。有些人将类/静态变量放在实例变量之前,有些人将它们放在之后。

如果您在一个正在编写新代码的团队中工作,最好聚在一起并决定一个共同的约定。如果您已经有要添加的现有代码,请仔细检查并找出以前的作者遵循的约定。您不希望在同一个代码库中混合多种样式。

于 2012-08-03T08:20:05.060 回答
2

数据布局实际上具有性能属性,除了根据您的喜好对字段进行排序。我倾向于遵循以下内容:

  • 静态最终字段,
  • 静态字段
  • 最终字段
  • 可修改字段
  • 按用例分组的可变字段

而有时

private field usedOnlyInFoo
method foo(){
}

更多关于为什么数据布局很重要的话题。虽然除了数组/直接缓冲区之外没有正式的方式在 Java 中强制执行数据布局,但编译器 (JVM) 通常会将字段按其声明顺序放置。

于 2012-08-03T08:39:58.300 回答
1

就我个人而言,我喜欢我所有的静态数据都放在一个类的顶部,并且所有字段都处于公共、受保护、默认、私有顺序。

例如

public static final Integer a;
private static final Integer b;

public Integer c;
Integer d
private Integer d;

我也倾向于在静态和非静态字段之间添加一条线。

但这是一个见仁见智的问题。也许问问你的同事你和谁一起工作。最好在这种事情上保持一致。

于 2012-08-03T08:26:04.013 回答