Java 在eclipse中提取方法似乎不起作用

Java 在eclipse中提取方法似乎不起作用,java,eclipse,refactoring,Java,Eclipse,Refactoring,我尝试在eclipse中执行一个简单的重构提取方法。 我选择下面的代码块,并使用alt+shift+M快捷方式进行提取 Parser parser = Parser.createParser(comment.getText(), "UTF-8"); NodeList htmlAnchorNodes = null; try { htmlAnchorNodes = parser .extractAllNodesThatMatch

我尝试在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变量

我收到错误消息:

返回值不明确:所选块包含多个 局部变量赋值。受影响的变量包括:

节点式角节点

解析器

整数大小


如何让Eclipse识别返回值?

在某些情况下,Eclipse不确定要返回哪个变量。如果它会提示您选择一个值,或者根据以后实际使用的值进行分析,这将是一个理想的选择,但是在提取方法之前,我已经使用了大括号来限制临时值的范围

用你的代码,我会从

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();
}