IntelliJ 2022.2.3如何格式化Lombok与Stream代码实现换行缩进?
实现IntelliJ中Java链式调用的格式化配置
你的需求完全可以通过IntelliJ 2022.2.3的代码格式化配置实现,具体步骤如下:
原始代码
TestDTO.builder().date(Date.from(Instant.now())).productName("product " + i).total(new BigDecimal(i)).purchaseType(1).sourceAppId("sourceAppId" + i).numberOfLicense(i).build(); List.of("a", "bb", "cccc").stream().filter(Objects::nonNull).filter(s -> s.length() > 1).collect(Collectors.toList());
期望格式化效果
TestDTO.builder() .date(Date.from(Instant.now())) .productName("product " + i) .total(new BigDecimal(i)).purchaseType(1) .sourceAppId("sourceAppId" + i) .numberOfLicense(i) .build(); List.of("a", "bb", "cccc").stream() .filter(Objects::nonNull) .filter(s -> s.length() > 1) .collect(Collectors.toList());
配置步骤
- 打开IntelliJ设置:按下
Ctrl+Alt+S(Windows/Linux)或Cmd+,(Mac)。 - 导航到
Editor > Code Style > Java,切换到Wrapping and Braces标签页。 - 在列表中找到Chained method calls区域:
- 将
Wrap call chain设置为Wrap always(强制每个链式调用方法单独换行); - 勾选
Align when multiline,让后续的方法调用对齐到第一个.的位置,和你期望的缩进样式一致; - 若希望短方法可与前一个同行,也可选
Wrap if long,但Wrap always会严格实现每个方法换行。
- 将
- 点击
Apply保存配置,再按下Ctrl+Shift+L格式化代码,即可得到目标效果。
注:你例子中.total(...)和.purchaseType(1)同行的情况属于手动调整的例外场景,默认配置会让所有链式方法单独换行,若需要这种特殊排版,格式化后手动调整即可。
内容的提问来源于stack exchange,提问作者OTUser
相关产品推荐
相关产品推荐

