使用 IntelliJ 自动替换为 var

Fáb*_*bio 13 java intellij-idea

我正在迁移一些 Java 10 之前的代码,我想知道IntelliJ是否提供了一种自动重构代码的方法,以尽可能用var替换使用实际类型的变量声明。

该代码充满了诸如以下内容:

String status = "empty";
BigDecimal interest = BigDecimal.ZERO;
List<Future<Boolean>> results = es.invokeAll(tasks);
LocalDate start = LocalDate.of(2020, 1, 1);
Run Code Online (Sandbox Code Playgroud)

我更愿意:

var status = "empty";
var interest = BigDecimal.ZERO;
var results = es.invokeAll(tasks);
var start = LocalDate.of(2020, 1, 1);
Run Code Online (Sandbox Code Playgroud)

我已经查看了 IntelliJ 的设置(代码样式/检查),但找不到任何内容。

sla*_*dan 18

  1. 转到File | Settings,在那里选择Editor | Inspections,然后在下面Java | Java language level migration aids | Java 10

  2. 右键单击Local variable type can be omitted并选择Weak Warning或类似。

  3. 将光标移到代码中的任何警告上(突出显示为灰色),打开快速修复上下文帮助(alt+enter),然后Replace explicit type with 'var'向右移动并选择Fix all 'Local variable type can be omitted' problems in file

感谢@olga-klisho 的想法(在评论中)


And*_*fat 5

我正在使用 IntelliJ IDEA 2021.3.2,但不认为该设置是新的。

\n

我自己也一直在为这个问题而苦苦挣扎。

\n

似乎第一次在本地安装IntelliJ,默认情况下,它会回退到使用传统的变量定义(即String s = new String();

\n

我如何设法将其更改为 usingvar是在声明某些内容之后,例如new String(),我按\xe2\x8c\xa5 Alt/Option+Enter来声明该声明的变量,或者使用\xe2\x8c\x98 Command+ \xe2\x87\xa7 Shift+V快捷方式(我正在使用 Mac 和经典的 Intellij 键映射,所以 YMMV)它激活变量的声明,这将显示如下:

\n

使用 var 改变传统的变量声明

\n

如您所见,建议点击该组合键快捷键或单击设置按钮,该按钮将打开如下所示的弹出窗口:

\n

单击设置按钮弹出

\n

确保您已Declare var type选择并且应该可以开始了。

\n