通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API

2019-07-04 00:00:00 更好 IDEA 2016.3

文中图片为GIF~

本文展示了IntelliJ IDEA如何帮助编写正确的和培养使用Java 8的习惯.版本使用IntelliJ IDEA 2016.3, 通过扩展了IDEA现有的检查以支持这些的案例。

现在,如果在上面定义的局部变量的循环递增中单击Alt + Enter,IDE将提示您使用以count()结尾的一系列steam的链式 API调用来替换它。 注意,如果循环是嵌套的,IDE将使用flatMap():

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》 如果变量从另一个方法返回的数字增加,IDE将使用mapToInt()/ mapToLong()/ mapToDouble():

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》 如果循环将非原始对象添加到集合中,而不是递增变量,IDE将用以collect()结尾的调用链替换它:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

如果要添加到集合的对象是另一种方法的结果,IDE将使用map()以惯用的方式处理它:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》 这些检查所支持的代码细节多么? 相当多。 考虑一个大量使用continue语句的循环:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》 与continue类似,IDE也将使用anyMatch()正确处理返回语句:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

如果您决定使用这些检查,请务必调整默认代码样式设置,以避免超过长方法链的右边距。 在此,你有一个选择,根据你的喜好来设置。

  • 下拉链(Chop down chain)方法调用如果它们很长(最适合Java 8)

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

  • 包装方法( Wrap method )参数调用

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

目前我们正在考虑更改这些默认值。

默认情况下启用检查,但其检查级别设置为最小 – 这意味着没有警告。 这是IntelliJ IDEA 2016的另一个新功能。

您可以在“设置”中更改任何检查的即便:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》 如果需要,您可以在你选择的范围上以批处理模式来应用这些检查:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

我们希望新的检查将帮助并使你的Java 8代码写更加得心应手,并充分利用stream API。 那些不熟悉stream API的人,请务必阅读Oracle的教程:第1部分和第2部分。

最后但并非最不重要的,IDEA还在努力改进VCS Log的布局:

《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》
《通过IntelliJ IDEA 2016.3 来更好使用Java 8的Stream API》

  • 提交详细信息已移至右侧,为日志本身提供了更多空间。
  • 表中的提交消息现在对齐,因此更易读。

关于Java 8 Stream API 的使用,请参考本人的博文:

    • 重走Java基础之Streams 一
    • 重走Java基础之Streams 二
    • 重走Java基础之Streams 三
    • 重走Java基础之Streams 四
  • 原文链接:一叶知秋
  • 作者:知秋
  • [ 转载请保留原文出处、作者。]
    原文作者:知秋z
    原文地址: https://zhuanlan.zhihu.com/p/25097207
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章