【问题标题】:Java Code Style: Positions Inside ClassJava 代码风格:类内的位置
【发布时间】:2017-06-21 15:44:46
【问题描述】:

您能否分享 JLS/JEP 或其他 Oracle/Twitter/Google Java 代码样式约定文档,其中声明了类元素的位置。 喜欢:

class Example {
  // public static final variables
  // private static final variables

  // static variables

  // class variables 

  // constructors

  // public methods
  // protected methods

  // inner classes

  // nested classes

  // static methods

  // setter1
  // getter1
  //...
  // setterN
  // getterN

}

【问题讨论】:

标签: java coding-style


【解决方案1】:

摘自 Google 文档: https://google.github.io/styleguide/javaguide.html#s3-source-file-structure

源文件结构

  • 许可或版权信息(如果存在)
  • 包装声明
  • 导入语句
  • 正是一个*课程
  • 恰好一个空白行分隔每个存在的部分。

每个*类都驻留在自己的源文件中。 您为类的成员和初始化程序选择的顺序会对可学习性产生很大影响。但是,没有一个正确的方法可以做到这一点。不同的类可能以不同的方式对其内容进行排序。

重要的是每个类都使用一些逻辑顺序,如果被问到,它的维护者可以解释。例如,新方法不只是习惯性地添加到类的末尾,因为这会产生“按添加日期的时间顺序”排序,这不是逻辑排序。

当一个类有多个构造函数或多个同名方法时,它们会按顺序出现,中间没有其他代码(甚至私有成员也不行)。

来自 Oracle 文档: 方法应该按功能分组,而不是按范围或可访问性分组。例如,私有类方法可以位于两个公共实例方法之间。目标是让阅读和理解代码更容易。

【讨论】: