我已安装了此插件,并且似乎未考虑Eclipse Formatter。
例如,我的链功能看起来像Formatter中的以下代码:
stringB.append("a")
.append("b")
.append("c")
但是当我要求eclipse自动格式化(我猜是使用格式化程序)时,代码放置如下:
stringB.append("a").append("b").append("c")
知道为什么会这样吗? CheckStyle是否覆盖了Eclipse定义的Formatter。我应该如何解决这个问题?
答案 0 :(得分:0)
知道为什么会这样吗?
这可能正在发生,因为这可能是您使用的格式化程序的默认行为。为防止这种情况,您可以选中名为从不加入已经包装好的行的框:
但是,有一个更好的解决方案(在下面详细介绍),甚至不需要选中该框。
CheckStyle是否覆盖了我的Eclipse定义的格式化程序。
否,但是您可以轻松确认此问题不是由Checkstyle引起的:
我应该如何解决此问题?
您需要修改格式化程序的设置:
该行上有三个图标,必须正确设置每个图标:
应用这些更改,然后重新格式化代码。现在,格式化程序应按照您指定的方式运行。这是一些代码的示例,这些代码在链接方法调用的格式方面存在各种问题:
List<String> months = Arrays.asList("January", "February", "March", "April", "May", "June");
List<String> months5 = months.stream().filter(s -> s.length() == 5).collect(Collectors.toList());
StringBuilder stA = new StringBuilder();
StringBuilder stringB = new StringBuilder();
StringBuilder thisIsStringC = new StringBuilder();
stA.append("a").append("b").append("c");
stringB.append("a")
.append("b")
.append("c");
stringB.append("d").append("e")
.append("f");
thisIsStringC .append("a")
.append("b")
.append("c");
thisIsStringC.append("d")
.append("e");
这是使用上述设置重新格式化( Ctrl-Shift-F )后的外观:
List<String> months = Arrays.asList("January", "February", "March", "April", "May", "June");
List<String> months5 = months.stream()
.filter(s -> s.length() == 5)
.collect(Collectors.toList());
StringBuilder stA = new StringBuilder();
StringBuilder stringB = new StringBuilder();
StringBuilder thisIsStringC = new StringBuilder();
stA.append("a")
.append("b")
.append("c");
stringB.append("a")
.append("b")
.append("c");
stringB.append("d")
.append("e")
.append("f");
thisIsStringC.append("a")
.append("b")
.append("c");
thisIsStringC.append("d")
.append("e");