• 肝了两天IntelliJ IDEA 2020,解锁11种新姿势, 真香!!!


    IDEA2020版本正式发布已经有3个月了,当时由于各方面原因(太懒)也没有去尝试新功能。于是这个周末特意去在另一个电脑上下载了最新版的IDEA,并尝试了一下。总的来说呢,体验上明显的提升。

    作为一个大版本的升级,自然也增加了许多新功能。个人体验了两天,

    • 支持Java14,并且可以直接通过IDE去直接下载JDK完成安装配置

    • 发布官方版汉化插件

    • 导航栏优化可直接跳转至方法或对象所在位置

    • 新增Mono字体(人称最适合程序员的字体)

    • LightEdit模式

    • 终端的窗口拆分(水平/垂直拆分)

    • Zon(禅)模式

    • javadoc文档的渲染a

    • 新增新的主题

    • 更加智能的错误检测

    • Debug增强预处理

    激活方法:https://shimo.im/docs/XXGr3gWJJ8kQjjPx

    支持Java14

    支持Records

    用于获取声明数据类的方法,只通过一行代码就可以获取到数据。

    public class Range {
    
    
    
          private final int min;
    
          private final int max;
    
    
    
          public Range(int min, int max) {
    
              this.min = min;
    
              this.max = max;
    
          }
    
    
    
          public int getMin() {
    
              return min;
    
          }
    
    
    
          public int getMax() {
    
              return max;
    
          }
    
    
    
          @Override
    
          public boolean equals(Object o) {
    
              if (this == o) return true;
    
              if (o == null || getClass() != o.getClass()) return false;
    
              Range range = (Range) o;
    
              return min == range.min && max == range.max;
    
          }
    
    
    
          @Override
    
          public int hashCode() {
    
              return Objects.hash(min, max);
    
          }
    
    
    
          @Override
    
          public String toString() {
    
              return "Range{" +
    
                "min=" + min +
    
                ", max=" + max +
    
                '}';
    
          }
    
      }
    

    如上数据类,无参构造方法;初始化时对成员变量赋值;成员变量只有getter方法;覆写了 超类 Object 的 equals 、hashCode、toString 方法。

    使用Records只需要一样代码即可以实现上述功能

      public record Range(int min, int max) {}
    

    如果你的IDEA没有配置JDK,可以直接在IDEA内部进行JDK下载安装配置。

    instanceof模式简化

    我们经常会使用instanceof运算符将引用变量与类型进行比较的代码。如果结果为true ,那么就可以将其显式转换为与之比较的类型。

    if (obj instanceof String) {
    
          String s = (String) obj;
    
          System.out.println(s);
    
      }
    

    Java 14中的instanceof模式匹配引入了instanceof运算符的模式变量。如果instanceof条件为true,则模式变量将绑定到要比较的变量,从而避免了显式强制转换以使用其成员的需要。

    于是我们可以改成这种写法

      if (obj instanceof String s) {
    
          System.out.println(s);
    
      }
    

    官方版汉化插件

    官方这次更新之后支持了汉化版,汉化需要借助JetBrains官方提供的Chinese (Simplified) Language Pack EAP插件。可通过安装插件进行汉化

    安装方法:

    在Plugins 搜索“Chinese”第一个就是我们汉化时需要安装的插件。


    我在另外一台电脑试着安装时,发现搜索不到这个插件。如果有同学遇到同样的问题,可以去IDEA插件中心进行搜索安装

    地址:https://plugins.jetbrains.com/idea

    按照提示操作,下载相应的版本,然后进行安装即可,安装方式有两种

    • 直接将插件拖入至IDEA界面即可

    • 在plugins界面通过导入本地文件进行安装

    汉化之后的界面如下图所示,目前来看大部分内容已经汉化,还剩一点点菜单内容没有完成汉化。使用汉化之后突然竟然感觉不太会用了,我个人不建议使用汉化的。

    导航栏优化

    在IDEA2020之后的版本可以通过点击.java文件导航到具体的方法或者对象所在的位置。再此之前的版本可以通过Structure界面进行位置跳转

    新增Mono字体

    一款被称为目前最适合程序员的字体,新的版本下载之后自带了Mono字体。

    长时间使用代码期间减轻眼睛疲劳的问题。同时考虑了字母的大小和形状等问题;它们之间的空间量,自然以等宽字体设计的平衡;一些看起来不必要的细节和符号之间不清楚的区别,例如I和l。

    对于旧版本IDEA,如果想自行安装Mono字体,可以通过官网自行下载安装

    地址:https://www.jetbrains.com/lp/mono/

    LightEdit模式

    可以理解为是一个轻量级的编辑器,可以在不加载项目的情况下,打开某个文件。

    这样我们就可以用IDEA以编辑器的形式去打开Java文件,


    如果需要打开并加载文件所在项目,只需要alt+enter之后选择Open file in project 即可。

    终端的窗口拆分

    这个更新,感觉真的提升了不少效率,多个终端在同一界面节省了来回切换的麻烦。


    使用时是这样的,有没有感觉效率提升了不少呢?

    Zon(禅)模式

    一个可以让程序员全身心投入到写代码,不受外界干扰的一种模式。

    启用方式如下图所示:

    • Enter/Exit Presentation Mode:进入/退出 展示模式

    • Enter/Exit Distraction Free Mode:进入/退出 免打扰模式

    • Enter/Exit Full Screen:进入/退出 全屏模式

    • Enter/Exit Zen Mode:进入/退出 禅模式(一个终极模式,包含以上3种模式)

    下图为禅模式,整个屏幕就是你的编辑页面,带上耳机打开禅模式,真的会有一种瞬间全世界都清净的感觉!

    javadoc文档的渲染

    当我们去阅读源码的注释或者一些帮助文档API,可能含有各种标记,影响阅读,而通过javadoc渲染功能之后,会自动祛除一些不必要的标题。并且可以修改字体的大小,方便阅读!

    如下是SimpleDateFormat中javadoc的一部分,是不是给人一种无法读下去的感受。


    用了JavaDoc之后呢,它就是这样的了

    新增新的主题

    在view中点击Quick Switch Scheme,然后在弹出的对话框中点击Themes,可以更换IDEA的主题。


    新增了统一的IntelliJ Light主题,这个主题已经在不同的操作系统中完全统一了。不过就我个人而言,还是更新换用Darcula黑灰色主题风格。

    错误检测

    比如我们在写日期转化的时候不小心写错了,如下:

    public static void main(String[] args){
    
            SimpleDateFormat sdf =
    
                    new SimpleDateFormat("YYYY-MM-dd");
    
            System.out.println("this is a boy");
    
        }
    

    这里呢,IDEA就会在YYYY字符上进行高亮显示,鼠标放上去就会提示我们,点击下方的Replace ‘YYYY’ with ‘yyyy’ 会自动帮我们进行替换。

    Debug增强预处理

    如下代码

    public static void main(String[] args) {
    
            int a = 0;
    
            while (a < 100) {
    
                if (a == 3) {
    
                    System.out.println("+++++");
    
                }
    
                a++;
    
            }
    
        }
    

    在第5行加了断点,当我们debug启动时,第6行就会进行与判断False。


    执行到a = 3时,会与判断为True。

    总结

    以上就是我这两天体验了一下IDEA2020版本之后的测评清单,还有很多功能需要在平时的使用中进行挖掘。如果大家有什么新功能要分享欢迎留言区进行留言。最后呢,建议大家最好不要使用公司的电脑进行升级,以免引起不必要的麻烦耽误了正常工作。

    最后呢,我录制了一个视频上传至B站了,大家可以去看一下。顺便记得点赞哦

    https://www.bilibili.com/video/BV1ua4y1a7d7/

    文末福利

    肝了全网,43份Java思维导图,需要自取!!!

    《Java面试手册》V1.0版本,高清PDF免费获取

  • 相关阅读:
    How do I list all fields of an object in Objective-C?
    Duplicate the UIButton and Move it
    How to duplicate a UIButton in Objective C?
    SVN如何进行版本的还原
    OpenGL入门程序四:颜色模式
    OpenGL入门程序三:点、线、面的绘制
    OpenGL入门程序二:绘制简单的圆
    OpenGL入门程序一:绘制简单的矩形
    计算机图形学相关名词的简单理解
    C# 中的浅表副本与深表副本
  • 原文地址:https://www.cnblogs.com/wyl-0120/p/13328464.html
Copyright © 2020-2023  润新知