簡體   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