【问题标题】:Java declarations (ordering)Java 声明(排序)
【发布时间】:2010-03-30 17:10:29
【问题描述】:

在 Java 中,按照声明的数据成员和方法应在类文件中列出的顺序来组织类,通常最接受的方式是什么,请记住以下内容以及您可以为每个类考虑的任何其他内容一:

  • 它的可见性
  • 无论是构造函数、方法还是成员
  • 如果它是一个方法,它是重载还是覆盖其他方法?

【问题讨论】:

  • 我确定这是一个骗子,但我认为另一个被关闭并删除了......
  • 嗯。我将在 SO 上进行更多搜索,看看我能找到什么。这个有点相似:stackoverflow.com/questions/564699/… 但它是从功能的角度来看的,而我可以说更多是从“视觉”的角度来看的。
  • @Lord Torgamus:我可以发誓几天前有人问过这个问题,但我也找不到。 @incrediman:我同意,您链接到的那个是询问编译器是否会阻止某种排序。不一样。

标签: java class declaration definition


【解决方案1】:

我发现Code Conventions for the JavaTM Programming Language 中的约定非常合适。第 3 章回答了这个问题。

大多数情况下它会忽略可见性或是否是重载函数等。

这很简单:

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

可以采取更严格的方法,但我认为没有强有力的论据支持它。

【讨论】:

  • 您可以在该列表的底部添加内部类以确保完整性
  • 我可能会将公共方法放在私有方法之前,以便更容易找到类的外部接口,但除此之外,这就是我几乎总是看到的。哦,公共静态最终(#define 样式)变量总是在其他实例变量之前分组在顶部。
【解决方案2】:

有建议的最佳实践,Kris 提到的那些几乎是“标准”,内部类位于该列表的底部。
也就是说,如果您使用Intellij IDEA(有一个免费的社区版本),那么有一个名为Rearranger 的插件,它可以让您指定所有这些并强制执行它,更重要的是 refactor 存在代码是你认为应该的。

【讨论】:

    【解决方案3】:

    如果您愿意,可以遵循 Google 项目 GWT 使用的建议。它基于 Sun 的标准 Java 代码约定。它增加了一些关于排序的严格规则,还涉及可见性修饰符等:

    http://code.google.com/webtoolkit/makinggwtbetter.html#codestyle

    【讨论】:

      【解决方案4】:

      Eclipse(以及,我敢肯定,其他 IDE)将自动排序声明(源 -> 排序成员),并带有类型和可见性选项。重载和覆盖不可用,至少在 Eclipse 中是这样。所以我想说建立一个包括类型和可见性的约定,但不包括重载/覆盖状态,然后配置您团队的 IDE 以实施该约定。团队更容易遵守自动化标准。

      【讨论】:

      • Netbeans 有 Source->Format(刚刚发现这个)。
      猜你喜欢
      • 2015-01-29
      • 1970-01-01
      • 2017-08-01
      • 2013-03-13
      • 2013-02-15
      • 1970-01-01
      • 2011-10-28
      • 2023-03-09
      • 2013-05-12
      相关资源
      最近更新 更多