在 IntelliJ IDEA(2021.2) 中的“重新格式化代码”之后,Java 代码缩进很奇怪。
代码格式配置如下:
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
<option name="USE_TAB_CHARACTER" value="false" />
<option name="SMART_TABS" value="false" />
<option name="LABEL_INDENT_SIZE" value="0" />
<option name="LABEL_INDENT_ABSOLUTE" value="false" />
<option name="USE_RELATIVE_INDENTS" value="false" />
</value>
</option>
样式配置来自 google-code-format。详细配置文件。
格式化的代码将是:
@Test
public void testMethod() {
... // other codes
Mockito.doAnswer(
new Answer() { // weird indentation, more 4 spaces.
@Override
public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
Files.touch(new File(localFile));
return null;
}
})
.when(strategyDownloadManager)
.download(Mockito.any(StrategyDownloadTask.class));
... // other codes
}
为什么不格式化如下:
@Test
public void testMethod() {
... // other codes
Mockito.doAnswer(
new Answer() {
@Override
public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
Files.touch(new File(localFile));
return null;
}
})
.when(strategyDownloadManager)
.download(Mockito.any(StrategyDownloadTask.class));
... // other codes
}
由于另一个匿名类是:
Thread thread =
new Thread(
new Runnable() { // annoymous class as parameter.
@Override
public void run() {}
});