繁体   English   中英

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

[英]Extracting a method in eclipse doesn't seem to work

我尝试在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识别返回值?

在某些情况下,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();
}

在大括号范围之外产生影响的唯一赋值是size的改变,这应该解决重构工具的模糊性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM