我正在基於結構替換創建自己的檢查。 比如我要讓轉化代碼一樣的檢查:如何排除Intellij IDEA中的代碼塊結構替換
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
和
if ($Map$.get($key$) == null){
$Map$.put($key$, $value$);
}
到
$Map$.putIfAbsent($key$, $value$);
但我不希望它的代碼反應,如:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
else {
// any logic
}
我試圖用
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
$else$
帶有選項文本「其他」,但它沒有工作。
可能嗎?另外,我必須用相同的替換結果進行兩次不同的檢查。我們可以使用多個搜索模式嗎?
UPDATE:
我試圖替換下一個模式
$Iterable$.forEach($value$ -> {
if ($condition$) {
$statement$;
}
});
到
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$);
但更換後我得到:
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$;);
是否可以刪除「;」從替換結果?
關於*更新*;它看起來像是遇到了結構搜索中的一些錯誤。似乎目前這是不可能的。 –
更新您的更新:錯誤已修復。在IntelliJ IDEA 2017.2中,您的結構替換不再生成額外的分號。 –