我尝试在eclipse中进行简单的重构(提取方法)。 我选择以下代码块并执行alt + shift + M(提取快捷方式)。
Parser parser = Parser.createParser(comment.getText(), "UTF-8");
NodeList htmlAnchorNodes = null;
try {
htmlAnchorNodes = parser
.extractAllNodesThatMatch(new TagNameFilter("a"));
} catch (ParserException e) {
e.printStackTrace();
}
int size = htmlAnchorNodes.size();
之后仅使用size变量。
我收到错误消息:
不明确的返回值:所选块包含多个 分配给局部变量。受影响的变量是:
NodeList htmlAnchorNodes
解析器解析器
int size
如何让Eclipse识别返回值?
答案 0 :(得分:2)
在某些情况下,Eclipse不确定您要返回哪个变量。如果它会提示您选择一个,或者根据以后实际使用的值进行分析,那将是理想的,但我在解压缩方法之前使用大括号来限制临时值的范围。 / p>
使用您的代码,我会改变
Parser parser = Parser.createParser(comment.getText(), "UTF-8");
NodeList htmlAnchorNodes = null;
try {
htmlAnchorNodes = parser
.extractAllNodesThatMatch(new TagNameFilter("a"));
} catch (ParserException e) {
e.printStackTrace();
}
int size = htmlAnchorNodes.size();
到
int size;
{
Parser parser = Parser.createParser(comment.getText(), "UTF-8");
NodeList htmlAnchorNodes = null;
try {
htmlAnchorNodes = parser
.extractAllNodesThatMatch(new TagNameFilter("a"));
} catch (ParserException e) {
e.printStackTrace();
}
size = htmlAnchorNodes.size();
}
在大括号范围之外产生影响的唯一赋值是对size
的更改,这应该可以解决重构工具的歧义。