我正在基于结构替换创建自己的检查。 比如我要让转化代码一样的检查:如何排除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中,您的结构替换不再生成额外的分号。 –