intellij-idea 用于迭代Map的Intellij IDEA活动模板

qco9c6ql  于 2022-11-01  发布在  IntelliJ IDEA
关注(0)|答案(3)|浏览(235)

我们可以通过按Ctrl+Alt+T,

轻松地遍历集合
然后我想创建这样的模板来遍历map:我将这些行写入 * 模板文本 * 框:

for (Map.Entry<$ELEMENT_TYPE$> $VAR$ : $SELECTION$.entrySet()) {
  $END$
}

现在,它正在生成以下代码:

HashMap<String,Object> map=new HashMap<String,Object>();
    for (Map.Entry<Object> objectEntry : map.entrySet()) {

    }

Map.Entry<Object>应该是Map.Entry<String,Object>。我找不到正确引入变量的方法。我该怎么做呢?

i86rm4rw

i86rm4rw1#

如果您只键入iter,然后按Tab键,则会更容易。
您将看到一个下拉菜单,您可以在其中选择map.entrySet(),它将为您提供:

for (Map.Entry<String, Object> stringObjectEntry : map.entrySet()) {

}
4si2a6ki

4si2a6ki2#

要查看可用活动模板列表:然后按Tab键。
从那里你将有一个活模板列表,iter(对于每个循环)将在列表上。

dced5bon

dced5bon3#

我写了这个,它在一个步骤中工作。我也喜欢有keyvalue在那里已经,但这些可以省略:

for (Map.Entry<$KEY_TYPE$, $VALUE_TYPE$> $PAIR$ : $ITERABLE_TYPE$.entrySet()) {
    $KEY_TYPE$ key = $PAIR$.getKey();
    $VALUE_TYPE$ value = $PAIR$.getValue();
    $END$
}

变量:

  • 关键字类型:guessElementType(iterableVariable())
  • 值类型:regularExpression(typeOfVariable(ITERABLE_TYPE),"^.*,(.*)>$", "$1")
  • 配对:suggestVariableName()
  • 可迭代类型:variableOfType("java.util.Map")

large amount of variables and functions使Live模板成为一个强大的工具。在VALUE_TYPE中,我使用正则表达式从Map<KeyType, ValueType>中得到ValueType。我尝试了很多“更干净”的方法,但没有一种方法奏效。

相关问题