如何制作IntelliJ折叠变量类型?

rig*_*old 5 java intellij-idea

习惯于提供类型推断的语言(C++,Scala),我发现这样的代码难以阅读:

ClassWriter classWriter = new ClassWriter(0);
Run Code Online (Sandbox Code Playgroud)

因为类型重复.有没有办法让IntelliJ折叠变量的类型,以便我可以像这样读写它:

var classWriter = new ClassWriter(0);
Run Code Online (Sandbox Code Playgroud)

但它实际上将它存储在磁盘上ClassWriter classWriter = new ClassWriter(0);

Mit*_*edo 9

Java高级折叠插件(由JetBrains公司)将折叠的变量声明,除其他事项外.

https://plugins.jetbrains.com/idea/plugin/9320-advanced-java-folding


vik*_*eve 0

不,你不能这样做,而且由于以下原因这可能不是一个好主意。

对于java来说,实例化一个具体的实现类型并通过抽象类型引用它是很常见的。

例如:

List<String> myList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果你可以写-实际上var myList = new ArrayList<String>();是什么类型?myListList<String>还是ArrayList<String>

强类型是 java 的核心,上面的例子说明了原因。

Java 7 对此做了一些改进,参数化类型的可读性可以使用菱形:

List<String> myList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

无论如何,我建议简单地尝试并习惯使用“java 方式”来执行此操作。