簡體   English   中英

用於迭代 Map 的 Intellij IDEA 前的實時模板

[英]Live Template fore Intellij IDEA for Iterating through Map

我們可以通過按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<Object>應該是Map.Entry<String,Object> 我找不到正確引入變量的方法。 我怎樣才能做到這一點?

如果您只輸入iter然后輸入Tab會更容易。

你會得到一個下拉菜單,你可以在那里選擇map.entrySet() ,它會給你:

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

}

要查看可用的實時模板列表: Ctrl + J然后Tab

從那里您將獲得實時模板列表, iter (對於每個循環)將在列表中。

我寫了這個,它分 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),"^.*,(.*)>$", "$1")
  • suggestVariableName()suggestVariableName()
  • ITERABLE_TYPE: variableOfType("java.util.Map")

大量的變量和函數使實時模板成為一個強大的工具。 在VALUE_TYPE,我使用正則表達式來獲得ValueType出來的Map<KeyType, ValueType> 我嘗試了很多“更干凈”的方法,但都沒有奏效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM