IntelliJ IDEA 2018.2新版本支持 Java 11、Mac Touch Bar…
本篇文章内容转载来自微信公众号"Mac Talk”,此公众号由极客时间的创始人池建强老师维护,池老师的文章写作风格非常幽默风趣且朴实无华,对苹果Mac软件、产品设计、程序开发等领域有着深入的研究和新颖独特的见解。
上一遍文章我介绍了IDEA的入门及使用体验,目前我用的是IDEA 2018.1版本,这不JetBrains最近更新了最新2018.2版本,于是乎池老师很快就发布了新版本的升级特性介绍,最初我也想自己了解下新特性顺便写一下这方面的东西,但是看完池老师从InfoQ中文网站重新校对和修改之后的这篇文章,我就觉得写的特别的好,且最近难得一次见到池老师在文末未打软广,说实话这波吃鸡吃的我猝不及防,原文转载如下:
题图:酒杯里的代码,自己拍的
我自己编程生涯里写 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)。面对具有泛型的长方法链时,开发人员可通过该功能查看每个调用的类型提示。
2018.2 为使用重构方法增加了一个预览面板,它有助于开发人员在确认更改前查看重构的可能情况,酷炫并且实用。
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 主题也做了一些更新。
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 工具窗口中给出代码覆盖情况报告。
新版本 IDEA 提供了一系列 JavaScript 和 TypeScript 提示,比如实现接口、创建派生类、实现接口或抽象类的成员、生成 switch 语句中的 case,以及使用 “for..of” 实现迭代运算等。
Spring
新版本 IDEA 增加个 Spring Integration Diagram,基于 XML 或 Java 标注图形化显示 Spring 应用的配置情况,包括gateway、channel 和 bridge 等。
2018.2 版本还针对 Spring Boot 应用做了系列改进。基于新的 Diagram Model 开发人员可以用图形化的方式显示 Spring Boot 应用运行时 Bean 之间的依赖关系。开发人员还可以通过 Run Dashboard 管理 HTTP 请求映射。
Docker
IDEA 的 Docker 插件日渐成熟。新支持的特性包括支持以软回车的方式查看 Docker 日志(wrap word)。开发人员也可以从 Compose 节点和容器查看对应的 Compose 和 Docker 文件。此外,你还可以定义 Dockerfile 的执行根目录。
IntelliJ IDEA 是一个极为强大的 IDE 工具,不仅可以开发 Java,基于插件机制可以编写各种语言的代码,快速、强大、敏捷,是 JetBrains 的当家软件,其他系列 IDE 都衍生于此。贵是贵,确实好用啊。
文末留言:你最喜欢的编程工具是什么呢?你最常用的编程工具又是什么?可以说说它们的优劣。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
jib-java容器化工具
Jib是google开源的Java容器化工具 简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。因为Jib与Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。 快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。 可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。仓库地址:https://github.com/GoogleContainerTools/jib 1. 配置jib插件 使用如下maven插件替换docker-maven-plugin <plugin> <...
- 下一篇
Istio Gateway与Kubernetes Ingress Controller对比
在Kubernetes环境中,Kubernetes Ingress用于配置需要在集群外部公开的服务。但是在Istio服务网格中,更好的方法是使用新的配置模型,即Istio Gateway。Gateway允许将Istio流量管理的功能应用于进入集群的流量。 二者在支持的功能上的对比,如下表所示 Istio Gateway 阿里云Ingress Controller NGINX Ingress Controller 根据HTTP Header选择路由规则 支持 仅支持单个Header,不支持多个Header组合 不支持 Header规则支持正则表达式 支持 支持 不支持 服务之间设置权重拆分流量 支持 支持 不支持 Header和权重规则组合使用 支持 支持 不支持 路由规则检查 支持 不支持 不支持 路由规则粒度 service下的不同pod service service 支持的协议 HT
相关文章
文章评论
共有0条评论来说两句吧...