Art*_*ero 6 java import groovy static codenarc
Codenarc是一个框架,可以分析Groovy代码中的缺陷,不良做法,不一致,样式问题等等.
这条规则是否有原因:MisorderedStaticImports规则:
检查非静态导入后永远不应该出现的静态导入语句.
违规的例子:
Run Code Online (Sandbox Code Playgroud)import my.something.* import static foo.bar.* public class MyClass{}
我不明白这条规则的动机或含义.
正如Marko Topolnik所说,进口的顺序与程序的含义无关.
我试着查看JLS以获得有关该效果的明确声明,但我找不到一个.Java教程也没有提到导入顺序.但是,它的语义import
是没有区别的.如果导入导致由于导入顺序导致的任何潜在歧义,则JLS表示这是编译错误.
因此,这只是一种风格惯例.(实际上,如果你看一下规则,它甚至可以让你选择先放置静态导入!)
UPDATE
@Eugene Stepanenkov指出了这个问答
这是Java 8之前的Oracle Java编译器版本中一个模糊的错误.它最终得到了承认和修复.
我想,这意味着该bug 可能是Codenarc警告动机的一部分.但是,这就是问题:如果你使用的是受bug影响的Java编译器,那么带有"错误"顺序的导入的代码根本无法编译......这使得Codenarc警告没有实际意义.