我正在尝试编写一个Eclipse模板来生成两个具有非冲突名称的变量。
当我在同一方法中使用模板两次时,第二个matcherVar
与第一个matcherVar
具有相同的名称,给出了我试图避免的命名冲突。
输出错误:
Pattern patternVar = Pattern.compile(patternString);
Matcher matcherVar = patternVar.matcher(matcherString); // correct matcherVar
Pattern patternVar0 = Pattern.compile(patternString);
Matcher matcherVar = pattern.matcher(matcherString); // wrong, instead: matcherVar0
如您所见,我错误地生成了两次运行模板的冲突名称。
当前模板:(为了便于阅读,添加了换行符和评论)
${:include(java.util.regex.Pattern, java.util.regex.Matcher)}
// compile Pattern object with patternString
${pattern_type:newType(java.util.regex.Pattern)}
${patternVar:newName(pattern_type)}
= ${pattern_type.compile(${patternString:var(String)});
// create Matcher object from the Pattern and matchingString
${matcher_type:newType(java.util.regex.Matcher)}
${matcherVar:newName(matcher_type)} // <------------------------- **wrong**
= ${patternVar}.matcher(${matchingString:var(String)});
注意:奇怪的是,在同一方法中运行模板3次或更多次后,生成的名称不会发生冲突,因此这可能是Eclipse的错误。