写点什么

IntelliJ IDEA 2018.2 支持 Java 11、MacBook Touch Bar 等新特性

2018 年 8 月 30 日

近期,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)。面对具有泛型的长方法链时,开发人员可通过该功能查看每个调用的类型提示。

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

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 主题也做了一些更新。

Scala

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

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

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 等。

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

Docker

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

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

查看英文原文:  IntelliJ IDEA 2018.2 Supports Java 11, MacBook Touch Bar and More

2018 年 8 月 30 日 19:007631
用户头像

发布了 377 篇内容, 共 95.8 次阅读, 收获喜欢 223 次。

关注

评论

发布
暂无评论
发现更多内容

Vol.2 谷歌不只有搜索

pyfn2030

谷歌Google

ARTS-WEEK01

lee

ARTS 打卡计划

突破困局

Neco.W

感悟 工作 创业心态

终于,我也到了和Eclipse说再见的时候,难说再见

程序员小跃

Java eclipse IDEA

Anaconda与虚拟环境

halapano

Python virtualenv Anaconda

如何用一台电脑制作一部动画短片?

zhoo299

动画 CG

100天从 Python 小白到大神最良心的学习资源!

JackTian

Python GitHub 学习 Python-100-Days Python-Core-50-Courses

实现元素等高: Flexbox vs. Grid

寇云

CSS css3

说到做到

Yukun

拖延症

使用SpreadJS 开发在线问卷系统,构筑CCP(云数据采集)平台

Geek_Willie

数据挖掘 大数据 SpreadJS CCP

联邦学习与推荐系统

博文视点Broadview

人工智能 大数据 学习 推荐系统

代码简洁之路 [持续更新]

hq

Java 前端 编程习惯

从 0 到 1 搭建技术中台之技术文化篇

伴鱼技术团队

企业文化 技术管理

那些会阻碍程序员成长的细节[1]

MavenTalker

程序员 程序员人生 职业规划

Vol.5 Go初探,新手必看!

pyfn2030

编程语言 新手指南

Wi-Fi p2p & ap 共存

贾献华

wifi p2p ap

你的团队是干什么的?

姜戈

团队管理 团队职能

多线程与线程安全(实例讲解)

YoungZY

Java 多线程 线程安全

Gartner 【RPA市场竞争格局】:中国厂商首次进入国际视野

人称T客

Vol.4 了解一下渗透测试

pyfn2030

黑客 网络安全

AB 测试平台的设计与实现

伴鱼技术团队

架构 系统设计 后端 A/B

你的团队想做出什么成果?

姜戈

团队管理

揭秘神经拟态计算:缘何成为AI界新宠?

最新动态

Vol.3 人工智能这么热,你必须知道一点儿!

pyfn2030

人工智能

计算机的时间

伴鱼技术团队

分布式 服务器 技术交流

Vol.1 Java初探,新手必看!

pyfn2030

编程 新手指南

码农远程办公指北

大伟

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十)在项目中准备测试环境

编程道与术

Java 编程 软件测试 TDD 单元测试

一致性算法 Raft 简述

架构精进之路

raft 一致性算法

自己常用的一些快捷键 windows10

halapano

Windows技巧

《程序员的数学》笔记

Rex

读书笔记

Leader修炼指“北”:管理路上的大小Boss

Leader修炼指“北”:管理路上的大小Boss

IntelliJ IDEA 2018.2支持Java 11、MacBook Touch Bar等新特性-InfoQ