aer*_*ion 5 lambda checkstyle java-8
我准备大规模迁移到JAVA8.部分原因是配置checkstyle以正确使用JAVA8结构.我尝试将checkstyle与IntelliJ中的默认自动调整工具保持同步.不幸的是,它不接受lambda表达式的自动IntelliJ缩进.
checkstyle.xml
<module name="Indentation">
<property name="caseIndent" value="0"/>
</module>
Run Code Online (Sandbox Code Playgroud)
码:
public class Java8CheckstyleTest {
public void java8Elements(String ala) {
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a); // <<<25 line
}); // <<<26 line
}
}
Run Code Online (Sandbox Code Playgroud)
Checkstyle报告:
Java8CheckstyleTest.java:25:'block'子级有不正确的缩进级别12,预期级别应为16.
Java8CheckstyleTest.java:26:'块rcurly'有不正确的缩进级别16,预期级别应为12.
如果我用新行和autoformat打破"})":
public class Java8CheckstyleTest {
public void java8Elements(String ala) {
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a); // <<<25 line
} // <<<26 line
);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到:
Java8CheckstyleTest.java:25:'block'子级的缩进级别为20,预期级别应为16.
Java8CheckstyleTest.java:26:'block rcurly'有不正确的缩进级别16,预期级别应为12.
我应该如何配置checkstyle而不是破坏旧代码并接受这些自动配置方案?
编辑:我更新了checkstyle到6.11.1,因为我看到问题几乎解决了.现在接受第一个代码.第二次报告:
Java8CheckstyleTest.java:32:错误:'block'子级具有不正确的缩进级别20,预期级别应为以下之一:12,16.
Java8CheckstyleTest.java:33:错误:'block rcurly'有不正确的缩进级别16,预期级别应该是以下之一:8,12.
我认为这可能是必须在下一个IntelliJ版本中修复的东西.我将结束这个问题.
添加:
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>6.11.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
到maven checkstyle插件配置解决了一个问题。主线程中的详细信息。
| 归档时间: |
|
| 查看次数: |
5608 次 |
| 最近记录: |