IntelliJ IDEA 2018.2 发布,支持 Java 11

近期,JetBrains发布了其旗舰产品IntelliJ IDEA的2018.2版本。新版本支持即将推出的Java 11、断点意图(Breakpoints Intentions)、MacBook的Touch Bar等特性,并改进了Spring Boot、Scala和Docker插件。

Java

IntelliJ IDEA 2018.2支持Lambda参数使用的本地变量新语法(即JEP 323)。这是定于11月推出的Java 11中的一个新特性。该特性支持开发人员在Lambda表达式中使用var:

//Java 8,不支持var。 
BiConsumer<Processor, String> consumer = (Processor x, String y) -> x.process(y);

//Java 11,支持var。
BiConsumer<Processor, String> consumer = (var x, var y) -> x.process(y);

为配合Java 11对var的支持特性,在IDE中按住“Ctrl/⌘”键并将光标驻留于var上,将会显示该变量的类型。

对于代码中冗长的方法链,IntelliJ IDEA将会给出类型提示(Type Hint)。面对具有泛型的长方法链时,开发人员可通过该功能查看每个调用的类型提示。

img

2018.2为使用Extract Method(提炼方法)的重构新添了一个预览面板。它有助于开发人员在确认更改前查看重构的可能情况。

img

IntelliJ IDEA改进了对@org.jetbrains.annotations.Contract标注的支持。该标注支持开发人员为特定参数的传递指定一个响应方法,这将为空性(Nullability)分析以及其它一些代码检查提供帮助。其约束新增的支持值包括:new,方法应该返回一个非Null的新对象;this,方法应该返回一个非Null的本身(this)指向;paramX,方法应该返回第X个参数。

Stream API支持也做了改进。它将会显示不必要的排序操作,以及错误使用了收集器(Collector)或集合(Colleciton)。此外,它还新增了对collect()(toSet())方法之前冗余调用distinct()方法给出警告。

Java项目的调试也做了大量的改进。如果开发人员组合使用Alt+Enter键及其他一些可用意图(Intension),就可能会看到三种新的断点意图:在类中只停(stop only)、类中不停,以及在当前对象中只停。此外,调试中还提供了一种新的Caller过滤器,支持开发人员从指定方法调用时在一个断点处只停,或是从指定方法调用时跳过一个断点。

用户界面

新版本还交付了一系列用户界面上的改进。现在IDEA直接支持MacBook的Touch Bar,并在Touch Bar界面的中间显示TouchJ IDEA按钮。这使得开发人员可以直接从Touch Bar运行、调试、提交更改和更新项目。对于macOS上的IntelliJ主题,现在支持以更暗方式显示标题栏,并添加了一些新的图标。而Linux上的IntelliJ主题也做了一些更新。

img

Scala

IntelliJ IDEA对Scala插件做了多项改进。它支持开发人员以内联提示的方式查看隐式转换和参数,并在一个提示工具(Tooltip)中浏览并扩展显示信息。现在,Scala插件中添加了Scalafmt格式化工具。要配置Scala插件,可依次点击菜单项“Preferences/Settings”>“Editor”>“Code Style”>“Scala”。

类型标注的自动完成和模式匹配功能也做了改进。如有可能,Scala插件会对类和接口给出一组建议的类型模式,参见下图:

img

JavaScript/Typescript

2018.2还改进了对JavaScript和TypeScript的支持。开发人员可以使用新的提炼组件(Extract Component)重构特性新建一个React组件,使用新的Code Coverage特性发现并未在客户端使用的JavaScript/TypeScript代码,并对代码做手工功能测试。为此,开发人员需要使用Code Coverage启动一个JavaScript Debug配置,并与Chrome中的应用进行交互。配置完成后,IntelliJ IDEA会在Coverage工具窗口中给出一个代码覆盖情况报告。

此外,开发人员可使用一系列JavaScript和TypeScript意图,例如实现接口、创建派生类、实现接口或抽象类的成员、生成switch语句中的case,以及使用“for..of”实现迭代运算。

Spring

在2018.2中新添了一个Spring Integration Diagram。它使用XML或Java标注显示了Spring应用的配置情况,包括gateway、channel和bridge等。

img

2018.2针对Spring Boot应用做了一些改进。新的Diagram Model支持开发人员对Spring Boot应用运行时Bean之间的依赖关系做可视化。开发人员可以通过Run Dashboard管理HTTP请求映射。

img

Docker

IDEA的Docker插件日渐成熟。新支持的特性包括使用新的Use Soft Warps操作支持Docker日志换行(wrap word)。开发人员也可以从Compose节点和容器浏览对应的Compose和Docker文件。此外,现在支持定义一个用于为Docker文件执行docker build命令的根目录。

更多信息,以及完全的改进列表,提供于“新特性”页面中。

原文发布于微信公众号 - 芋道源码(YunaiV)

原文发表时间:2018-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Go- Buffer Channel- Select-基础理解

这篇主要讲Select这个有用的关键字用来监听管道顺带讲下带缓冲的Channel 带缓冲的Channel Channel是可以带有缓冲的 c := make(c...

48680
来自专栏Golang语言社区

锁的优化和注意事项151

1. 锁优化的思路和方法 在[高并发Java 一] 前言中有提到并发的级别。 一旦用到锁,就说明这是阻塞式的,所以在并发度上一般来说都会比无锁的情况低一点。 这...

438110
来自专栏计算机技术翻译

ElasticMQ 0.7.0:使用Akka和Spray的长轮询,非阻塞实现

原文地址:https://dzone.com/articles/elasticmq-070-long-polling-non

21890
来自专栏Google Dart

AngularDart4.0 指南- 依赖注入 顶

依赖注入是一个重要的应用程序设计模式。 它的用途非常广泛,几乎所有人都称之为DI。

14820
来自专栏Java开发者杂谈

Spring @Transactional踩坑记

@Transactional踩坑记 总述 ​ Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@...

96370
来自专栏Java帮帮-微信公众号-技术文章全总结

Java设计模式-命令模式

在对象的结构和创建问题都解决了之后,就剩下对象的行为问题了: 如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高. 行为型模式共有1...

36660
来自专栏禁心尽力

多线程编程:多线程并发制单的开发记录【一】

进程和线程: 下图是在来自知乎用户的解释,个人感觉狠到位 ?        进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资...

22170
来自专栏NetCore

Do You Know?Url Path MaxLength Limit -- 你或许以后会遇到的一个问题

最近一直在学习Asp.Net MVC,大家都知道可以用System.Web.Routing来解析一段Url,然后到达我们Route规则定下的一个Controll...

19280
来自专栏Golang语言社区

Go Channel 应用模式(一)

Channel是Go中的一种类型,和goroutine一起为Go提供了并发技术, 它在开发中得到了广泛的应用。Go鼓励人们通过Channel在goroutine...

23420
来自专栏Python中文社区

OpenStack中的RESTful API是如何实现的?

OpenStack作为一个开源的IaaS平台,各个组件和服务之间的消息传递都是通过RESTfulAPI和RPC传递,这里主要讲讲它是如何实现REST的。由于大家...

37980

扫码关注云+社区

领取腾讯云代金券