【问题标题】:Live Template fore Intellij IDEA for Iterating through Map用于迭代地图的 Intellij IDEA 实时模板
【发布时间】:2012-09-22 02:32:23
【问题描述】:

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

轻松地遍历集合

然后我想创建这样的模板来遍历地图: 我将这些行写到 模板文本 框中:

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&lt;Object&gt; 应该是 Map.Entry&lt;String,Object&gt;。我找不到正确引入变量的方法。我该怎么做?

【问题讨论】:

  • 我使用iter + &lt;tab&gt; 并选择map.entrySet() 是否需要创建一个新模板来执行此操作?如果是这样,你可以看看这个是如何实现的。

标签: java intellij-idea keyboard-shortcuts code-snippets


【解决方案1】:

我写了这个,它只需要 1 个步骤。我也喜欢已经有keyvalue,但可以省略:

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

变量:

  • KEY_TYPE:guessElementType(iterableVariable())
  • VALUE_TYPE:regularExpression(typeOfVariable(ITERABLE_TYPE),"^.*,(.*)&gt;$", "$1")
  • 对:suggestVariableName()
  • ITERABLE_TYPE:variableOfType("java.util.Map")

large amount of variables and functions 使实时模板成为强大的工具。在 VALUE_TYPE 中,我使用正则表达式从 Map&lt;KeyType, ValueType&gt; 中获取 ValueType。我尝试了很多“更清洁”的方法,但都没有奏效。

【讨论】:

    【解决方案2】:

    要查看可用的实时模板列表:Ctrl + J,然后是 Tab

    从那里您将获得实时模板列表,iter(对于每个循环)将在列表中。

    【讨论】:

      【解决方案3】:

      如果你只输入 iter 然后 Tab 会更容易。

      你会得到一个下拉菜单,你可以在那里选择map.entrySet(),它会给你:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-27
        • 2015-12-02
        • 2011-09-19
        • 1970-01-01
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多