IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
IntelliJ IDEA
Java
![](https://lh3.googleusercontent.com/a04oHNjRZrReq_6CAtYC6Ytz7A8t9d64SCiRVe0hONS1E5kzmuHNqYKvgjEx8z_bKI1YVs8cxYQznh5hUbp9nz_1NrnsLPThWvQR97BbvDfLFde6VHPQxFRq8Wd9KR4gfxm_BZ9p)
![](https://lh5.googleusercontent.com/jk-rgQkMpAMJ4bjAKjxXakRIBtyenJkoreZk7XqHNN3xzib9AFgO-h8zD-a61djInEIHJFqdEf8LqpcXEPP6LGWyHkgCfShSi3Q8lM_Xu4FBv7jyDXhg0Psox3BPywryeQfnFoLF)
![](https://lh3.googleusercontent.com/7l1b9P_qt5XL8XsHeJIWzwUMtVFQBIR19XN43KNVDjPmnLHHhYUzR-Bd-ZE1VU-VstmjBmuWEQTG5PSzN7EDuougWK1qVYWBmCdfH8zqIcj5Dd8o_fPBO47qF6JJYJ9J2sHll5sF)
![](https://lh4.googleusercontent.com/vghJ66NaVEJK7P1hgC4-dvC0x7CJbc1syZTYHdtV01UeM-TAHWHEZkx6Eo0WDMk_Igy1625JU7GD9LFcuH-BZmkJOHwXfyky4f2LLY5qOnXKcnjp-bebtPyn6ZZPcSOnj6o0dfvq)
![](https://lh4.googleusercontent.com/fzcVsW_pWZcMQx7zC9sKSqaQ5bT2JndqYaK3i9ViLj3BbyTwQFedYh330ogdP0IDF8-8GL2_C15Vc4M8mBCJvUMA7Lpn02mgzblhR_YtE4o---mbkqpBmcbrVO7aHFwUIuen4fDZ)
The inspection: Java | Probable bugs | Cleaner captures object reference
(检查:Java | 可能的错误 | 清理器捕获对象引用)
Java 18 功能支持
Java 18 现已发布,从 2022.1 版本开始,IntelliJ IDEA 将提供对它的支持。
对代码段的支持
JDK 18 引入了 JavaDoc 标准 Doclet 的 @snippet 标记,用于简化在 API 文档中包含示例源代码的操作。
即使没有显式包装器,代码段片段仍会被识别为 Java 代码。 任何语言都可以被指定,并且语言注入功能也适用于代码段。 例如,可导航引用将适用于通过 import 可用的所有元素:
没有必要使用类的绑定编写代码段中的所有代码。 片段将被 IntelliJ IDEA 识别为与 JShell 片段类似。
switch 表达式的模式:第二预览
JDK17 中引入的 switch 表达式的模式匹配规范现已更新,添加了 IntelliJ IDEA 中已经支持的两个基本变更:
- 任何类型的模式(包括受保护的模式)都支配着常量 case。 模式和非常量 case 的支配没有改变。
- 对于密封层次结构,子类型有时不能用于选择器类型,或者不能转换为选择器类型。 您不再需要处理这些子类型来使 switch 语句详尽无遗。
其他更新
从 Java 18 开始,非静态内部类(无论是否匿名)如果未使用就不会捕获 `this`,因此检查 Cleaner captures object reference(清理器捕获对象引用)已相应更新。 它不会在代码中触发以下警告:
(检查:Java | 可能的错误 | 清理器捕获对象引用)
此外,在 JDK18 中,默认字符集现在是 UTF-8,而不是根据平台存在的不同默认字符集。 报告隐式使用平台默认字符集的方法和构造函数调用的 Implicit platform default charset(隐式平台默认字符集)检查已相应更新。
本博文英文原作者: