Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用IntelliJ自动替换为var_Java_Intellij Idea - Fatal编程技术网

Java 使用IntelliJ自动替换为var

Java 使用IntelliJ自动替换为var,java,intellij-idea,Java,Intellij Idea,我正在迁移一些Java 10之前的代码,我想知道IntelliJ是否提供了一种自动重构代码的方法,以尽可能地将使用实际类型的变量声明替换为var 代码中充满了如下内容: String status = "empty"; BigDecimal interest = BigDecimal.ZERO; List<Future<Boolean>> results = es.invokeAll(tasks); LocalDate start = LocalDat

我正在迁移一些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);

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

使用IntelliJ编辑->查找->替换…选项

Ctrl+R

  • 转到
    File | Settings
    ,在那里选择
    Editor | Inspections
    ,然后在
    Java | Java语言级迁移辅助工具| Java 10

  • 右键单击
    局部变量类型可以省略
    ,然后选择
    弱警告
    或类似选项

  • 将光标移到代码中的任何警告上(突出显示为灰色),打开快速修复上下文帮助(alt+enter),在
    将显式类型替换为“var”
    移到右侧,然后选择
    修复文件中的所有“局部变量类型可以忽略”问题


  • 感谢@olga klisho的建议(在评论中)

    你为什么要这么做?我对“var”的理解是,它旨在使新代码更易于编写,但您对重构现有代码以使用它有何期望?新的部分使用var,我更喜欢它。我想在整个项目中保持一致的风格。不过,新部件是否在任何地方都使用
    var
    ?我认为这通常取决于您是否应该使用它,例如,
    MyComplexType bla=create()
    var bla=create()
    提供了更多的信息。关于旧代码的一点是,您更经常地阅读它,并且不想在这种情况下猜测类型。因此,没有好办法知道是否使用
    var
    ,也没有办法自动化这些选择。可以省略局部变量类型(可以省略Java | Java语言级迁移辅助工具| Java 10 |局部变量类型)。它提供了“fixall”修复程序,有助于将文件中的类型更改为var。Olga Klisho,这正是我想要的。你能把你的意见写在回答中,这样我就可以接受了吗?
    var status = "empty";
    var interest = BigDecimal.ZERO;
    var results = es.invokeAll(tasks);
    var start = LocalDate.of(2020, 1, 1);