【发布时间】:2016-05-06 06:21:51
【问题描述】:
在 Java 的某些应用程序中,我缺少 C++ 中的“auto”关键字。不要误会,这绝对不是关于语言哲学或编程实践的讨论。
例如,如果我有一个 Map of Maps,并且我想拥有关联的条目集,则代码如下所示:
Map<String, Map<String, VeryLongClassNameGetsEvenLongerAndLonger>> map = new HashMap<>();
Set<Map.Entry<String, Map<String, VeryLongClassNameGetsEvenLongerAndLonger>>> entryset = map.entrySet();
现在变量“entryset”的类型很难输入和正确输入。在 C++ 中,我会在这里使用 auto 。这在 Java 中不存在,所以我使用 IntelliJ IDE 提供的下一个最好的东西。我输入
Integer entryset = map.entrySet();
这显然是不正确的,但这会提示 IntelliJ 向我建议:
Change variable 'entryset' type to 'Set<Map.Entry<String, Map<String, VeryLongClassNameGetsEvenLongerAndLonger>>>
所以我只需按 Alt-Enter 即可自动更正。
但是,我想知道:我可以在不通过更正功能的情况下做到这一点吗?诸如“自动完成类型”之类的东西——热键、/auto/ pragma 之类的?
【问题讨论】:
-
就用 Kotlin,兄弟
标签: java generics intellij-idea