升级到4.4之后,我重新评估了SONAR代码质量规则,这里有一个奇怪的CheckStyle规则称为“内部类型最后一个”'这是class design组的一部分,实际上建议在包括方法在内的所有内容之后放置内部类。
这背后有什么动力?我从没想过有人会认为这种方法有用,但也许我错过了严肃的意识形态? Checkstyle规则定义不提供任何基础,也不提供快速谷歌搜索(也许我搜索错误的方式)。你能指出它来自哪里吗?
答案 0 :(得分:3)
这条规则假设内部类型是" side"仅处理封闭类型的内部细节的类型,因此不值得在源文件的最开头显示这些细节,以免将注意力集中在它们上。
IMO,此规则的唯一(非常小)价值是确保源代码中代码结构的一致性。
答案 1 :(得分:2)
嗯......这确实是一个无用的规则,特别是因为它当前不能(5.7)被配置为强制在其他位置而不是在结尾处声明的内部类。我认为它可以安全地被禁用。
但是, 是强制执行源文件结构的这一部分的唯一方法,所以如果你不能确定每个人都正确配置了她/他的格式化程序,你甚至可能想要这样。 (就个人而言,我更喜欢顶部的内部类型,因此当我阅读使用它们的代码时,我知道它们是什么。)
Checkstyle规则最初集中在Sun Code Conventions(1999),它没有说内部类应该去哪里。此外,较新且受欢迎的Google Java Style(2014)对此没有任何意见。 Checkstyle甚至有一个DeclarationOrder检查,也无法检查内部班级位置。
所以我猜有人最后说这必须结束并添加InnerTypeLast。我们终于得到它了。 : - )