IntelliJ IDEA 2018.2新版本支持 Java 11、Mac Touch Bar…

简介: 本篇文章内容转载来自微信公众号"Mac Talk”,此公众号由极客时间的创始人池建强老师维护,池老师的文章写作风格非常幽默风趣且朴实无华,对苹果Mac软件、产品设计、程序开发等领域有着深入的研究和新颖独特的见解。

本篇文章内容转载来自微信公众号"Mac Talk”,此公众号由极客时间的创始人池建强老师维护,池老师的文章写作风格非常幽默风趣且朴实无华,对苹果Mac软件、产品设计、程序开发等领域有着深入的研究和新颖独特的见解。

上一遍文章我介绍了IDEA的入门及使用体验,目前我用的是IDEA 2018.1版本,这不JetBrains最近更新了最新2018.2版本,于是乎池老师很快就发布了新版本的升级特性介绍,最初我也想自己了解下新特性顺便写一下这方面的东西,但是看完池老师从InfoQ中文网站重新校对和修改之后的这篇文章,我就觉得写的特别的好,且最近难得一次见到池老师在文末未打软广,说实话这波吃鸡吃的我猝不及防,原文转载如下:

img_79f9eec6263582a1f1aebe324da88da4.jpe

题图:酒杯里的代码,自己拍的

我自己编程生涯里写 Java 比较多,常用的编辑器是 Vim 和 IntelliJ IDEA。Vim 免费轻快,像一把雪亮的快刀,挡着披靡。IDEA 厚重强大,华丽的像关二爷的青龙偃月刀,锋利无匹。各有各的好处,我都非常喜欢。近期 JetBrains 发布了 IntelliJ IDEA 的最新版本:2018.2,其中包含了诸多新特性,我第一时间更新了(IDEA 现在是付费订阅方式),给大家介绍下。

IDEA 的新版本支持即将推出的 Java 11、断点意图(Breakpoints Intentions),为 MacBook 系列的 Touch Bar 定制了快捷功能,并改进了 Spring Boot、Scala 和 Docker 相关的插件。

以下内容编译自极客邦 InfoQ 中文网站,我重新做了校对和修改

Java

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

//Java 8,不支持var。 

BiConsumerconsumer = (Processor x, String y)x.process(y);

//Java 11,支持var。

BiConsumerconsumer = (var x, var y)x.process(y);

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

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

img_e6b11864c0c1d34e6a83cb99f2bb5293.jpe

2018.2 为使用重构方法增加了一个预览面板,它有助于开发人员在确认更改前查看重构的可能情况,酷炫并且实用。

img_6e4a70ae58bd6d7729f4b540a12a8181.jpe

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

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

Java 项目中的调试功能也做了大量的改进。如果开发人员组合使用 Alt+Enter 键,就能看到三种新的断点状态,比如:stop only in class, do not stop in class, and stop only in the current object。此外,新的 Caller 过滤器可以允许开发者实现这样的功能:只有来自某个特定方法里的调用,才会停在这个断点,或者跳过这个断点。

用户界面

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

img_3567e2a48157f8484126bcbb0d6ae86d.jpe

Scala

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

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

img_808d069d46b64e077362cf6835e500ab.gif

JavaScript/Typescript

2018.2 还改进了对 JavaScript 和 TypeScript 的支持。开发人员可以使用新的 Extract Component 特性新建一个 React 组件,使用新的 Code Coverage 特性找到没的 JavaScript/TypeScript 代码,并对代码进行手工测试。开发人员可以使用 Code Coverage  启动一个 JavaScript Debug 配置 ,并与 Chrome 中的应用进行交互。配置完成后,IntelliJ IDEA 会在 Coverage 工具窗口中给出代码覆盖情况报告。

新版本 IDEA 提供了一系列 JavaScript 和 TypeScript 提示,比如实现接口、创建派生类、实现接口或抽象类的成员、生成 switch 语句中的 case,以及使用 “for..of” 实现迭代运算等。

Spring

新版本 IDEA 增加个 Spring Integration Diagram,基于 XML 或 Java 标注图形化显示 Spring 应用的配置情况,包括gateway、channel 和 bridge 等。

img_233b4fdbef820c26ba9f04a84f97933f.gif

2018.2 版本还针对 Spring Boot 应用做了系列改进。基于新的 Diagram Model 开发人员可以用图形化的方式显示 Spring Boot 应用运行时 Bean 之间的依赖关系。开发人员还可以通过 Run Dashboard 管理 HTTP 请求映射。

img_baa922b186e6a0c7aa532dc2d98ecd73.gif

Docker

IDEA 的 Docker 插件日渐成熟。新支持的特性包括支持以软回车的方式查看 Docker 日志(wrap word)。开发人员也可以从 Compose 节点和容器查看对应的 Compose 和 Docker 文件。此外,你还可以定义 Dockerfile 的执行根目录。

IntelliJ IDEA 是一个极为强大的 IDE 工具,不仅可以开发 Java,基于插件机制可以编写各种语言的代码,快速、强大、敏捷,是 JetBrains 的当家软件,其他系列 IDE 都衍生于此。贵是贵,确实好用啊。

文末留言:你最喜欢的编程工具是什么呢?你最常用的编程工具又是什么?可以说说它们的优劣。

目录
相关文章
|
2月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
75 0
|
17天前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
66 6
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
80 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
2月前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
33 6
|
2月前
|
应用服务中间件 Windows
震惊!idea 2021 社区版手把手安装,超详细过程,新手一看就会 如何安装低版本的IDEA? IDEA安装过程中版本冲突怎么办 idea最新版安装!
本文提供了一个详细的指南,用于安装2021年社区版的IntelliJ IDEA,包括如何处理版本冲突和完成安装过程。
348 2
震惊!idea 2021 社区版手把手安装,超详细过程,新手一看就会 如何安装低版本的IDEA? IDEA安装过程中版本冲突怎么办 idea最新版安装!
|
2月前
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
450 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
2月前
|
Java 关系型数据库 开发工具
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
本文提供了解决方案,如何在IDEA中创建Spring 2.X版本的项目并使用JDK8,尽管Spring 2.X已停止维护且IDEA不再直接支持,通过修改pom.xml或使用阿里云的国内源来创建项目。
92 0
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
|
2月前
|
开发工具 iOS开发 MacOS
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
75 0
|
4月前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
105 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
4月前
|
Java PHP 数据安全/隐私保护
Java——IDEA如何运行单个文件
Java——IDEA如何运行单个文件
60 1
Java——IDEA如何运行单个文件