哪个顺序更适合现场声明

时间:2012-08-03 08:14:36

标签: java

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

protected Connection connection;


protected Connection connection;

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

哪个顺序更适合字段声明?有些书指出应该通过private / public / protected / etc命令它们,如果基于此,第二个代码更好,但看起来看起来很糟糕。如果包含static final var或static var?哪个订单规则是?

4 个答案:

答案 0 :(得分:6)

我建议你保持一致,但我更喜欢按照设置的顺序排列字段,因为这样可以更容易理解代码并对其进行调试。 IMHO。

 static final fields

 final fields

 mutable fields.

答案 1 :(得分:4)

一个常见的标准是将所有公共变量放在最前面,然后是protected,然后是private。有些人在实例变量之前将类/静态变量置于顶部,有些人将它们放在后面。

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

答案 2 :(得分:2)

数据布局实际上具有性能属性,除了您喜欢的字段排序。 我倾向于遵循:

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

有时是

private field usedOnlyInFoo
method foo(){
}

More on the topic为什么数据布局很重要。虽然除了数组/直接缓冲区之外,没有正式的方法可以在Java中强制执行数据布局,但编译器(JVM)通常会按照声明顺序放置字段。

答案 3 :(得分:1)

就我个人而言,我喜欢我所有的静态课程,并且所有领域都是公开的,受保护的,默认的,私人的。

例如

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

public Integer c;
Integer d
private Integer d;

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

但这是一个意见问题。也许问你与谁合作的同行。最好是在这类事情上保持一致。