【问题标题】:Eclipse Members Sort Order vs Oracle Java Code ConventionsEclipse 成员排序顺序与 Oracle Java 代码约定
【发布时间】:2012-12-16 22:49:45
【问题描述】:

在 Eclipse 中,默认的“成员排序顺序”(在 Preferences - Java - Appearance - Members Sort Order 中)是:

  • 类型
  • 静态字段
  • 静态初始化器
  • 静态方法
  • 字段
  • 初始化器
  • 构造函数
  • 方法

但是Oracle's Java Code Conventions 说顺序应该是:

  • 类(静态)变量
  • 实例变量
  • 构造函数
  • 方法

所以 Oracle 在排序时不区分静态和非静态方法。由于这个原因,我收到了 Checkstyle 错误:

实例变量定义顺序错误。

所以我想知道是在 Eclipse 中修改顺序还是禁用 Checkstyle 检查。倾向于禁用 Checkstyle 检查,这样加入项目的每个人都不必修改他们的 Eclipse 设置,但忽略官方约定似乎有点错误。

人们的看法是什么?还有其他方法可以解决这个问题吗?

【问题讨论】:

  • 是的 - 没有看到它,它是一个非常相似的 q,但是略读一下,对于在 Eclipse 中做什么并不明智!
  • 您应该让 Eclipse 和 Checkstyle 都符合您的判断正确的做法。您应该在考虑他们的意见后做出判断,但这在很大程度上是您的决定。就个人而言,我会将静态方法排在最前面,比如 Eclipse,因为它很有意义(静态方法与实例方法完全不同),这就是我所见过的所有代码所做的。
  • 另外,我注意到 Sunacle 甚至不遵循他们自己的建议 - 在String 中,静态字段位于实例字段之后,并且有一个静态方法在构造函数中。

标签: java eclipse static members


【解决方案1】:

根据 Peter Svensson 接受的答案,这些 Checkstyle 错误可以通过在 Eclipse 中使用以下成员排序顺序来解决:

  1. 类型
  2. 静态字段
  3. 字段
  4. 静态初始化器
  5. 初始化器
  6. 构造函数
  7. 静态方法
  8. 方法

【讨论】:

    【解决方案2】:

    “所以我想知道是在 Eclipse 中修改顺序还是禁用 Checkstyle 检查。倾向于禁用 Checkstyle 检查,这样加入项目的每个人都不必修改他们的 Eclipse 设置,但似乎有点错误无视官方惯例。”

    我建议更改 Eclipse 以符合您想要使用的规则。如果您想要的话,最好使用 Oracles。 我通常使用 Maven 生成我的 Eclipse 项目文件(因此所有代码格式都是为新用户自动创建的)。我知道CXF 使用了类似的东西,看看他们的 POM 以获得灵感。

    【讨论】:

    • 问题是成员排序顺序不是项目的一部分,而是仅在工作区级别。
    猜你喜欢
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2012-06-04
    • 2019-10-10
    • 2011-06-02
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多