【问题标题】:Do you know Java 8 formatter which puts chained calls in separate lines?你知道 Java 8 格式化程序将链式调用放在单独的行中吗?
【发布时间】:2020-03-13 07:38:39
【问题描述】:

是否有人知道一个好的 Java 格式化程序,它可以自动格式化 Java 代码,将链接的方法调用拆分为新行。

我想找到格式化 Java 8+ 代码的格式化程序,如下所示:

properties
    .getEndpoints()
    .stream()
    .map(UriTemplate::new)
    .collect(Collectors.toList());

而不是这个:

properties.getEndpoints().stream().map(UriTemplate::new).collect(Collectors.toList());

我需要找到可以从命令行运行的格式化程序,因为团队中并非所有开发人员都使用相同的 IDE。

我已经尝试过 google java formatter 和 spring java formatter,它们都以我希望避免的方式格式化代码(同一行中的链接方法调用)。

谢谢!

【问题讨论】:

  • 我知道的唯一技巧是在每行的末尾添加一个//。我知道您希望有一个更加自动化的解决方案。
  • 对我来说,这是开发人员的行为,我认为您的团队需要对此进行宣传 :)
  • @ElliottFrisch 这是一种有趣的方法,如果没有其他方法,这可能是我们最后的手段,我们将讨论它。谢谢!

标签: java formatting


【解决方案1】:

您通常必须调整任何格式化程序的默认值(这也是您发现的)。

我们在五六年前对此进行了研究,发现 IntelliJ 和 Eclipse 的行为几乎不可能完全相同。我会花时间为每个人制定合适的配置(可能需要相当长的时间),然后要求人们使用该配置。

我建议不要对源进行任何自动重新格式化,但您可以考虑检查源是否与其格式化版本等效,作为构建引擎中源质量测量的一部分。 p>

【讨论】:

  • 感谢您的回答。我希望避免这种情况,但如果不可能,我们将不得不讨论是否可以统一 IDE 的使用或调查其他内容,因为一致性对我们来说非常重要。
  • 如果是这样,您可能会发现 github.com/revelc/formatter-maven-plugin 对进行实际格式化很感兴趣。 (注:我已经很久没有测试过了)
猜你喜欢
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多