1

我正在尝试编写一个 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 的错误。

4

0 回答 0