变量从未使用过

时间:2013-11-06 12:08:32

标签: java android exception

我有这部分代码:

/**
 * Checks if the provided URL is valid.
 *
 * @param urlToCheck - The URL to check.
 *
 * @return boolean true if it's valid.
 */
protected boolean isUrlValid( String urlToCheck )
{
    boolean isValid = true;
    try
    {
        URL url = new URL( urlToCheck );
    }
    catch ( MalformedURLException exception )
    {
        isValid = false;
    }

    return isValid;
}

正如您所看到的,我正在创建一个新的URL对象,如果String URL无效,它将崩溃。这是有效的,“问题”是LINT说我没有使用url变量。 我真的不必使用它,所以这是我的问题:

  • 还有其他更好的方法吗?
  • 我可以在这条线上压制lint检查JUST吗?

4 个答案:

答案 0 :(得分:5)

您会看到一个警告,因为您没有使用变量并且可能会浪费内存。如果你不需要变量,你可以做这样的事情

protected boolean isUrlValid( String urlToCheck )
{
    boolean isValid = true;
    try
    {
        new URL( urlToCheck ); // Notice this
    }
    catch ( MalformedURLException exception )
    {
        isValid = false;
    }

    return isValid;
}

答案 1 :(得分:4)

这样做没有错,但是你的变量没有被使用。

您可以更改

URL url = new URL( urlToCheck );

new URL( urlToCheck );

答案 2 :(得分:1)

您可以替换

  

网址url =新网址(urlToCheck);

有这样的事情:

new URL( urlToCheck );

这将确保您没有任何未使用的引用指向URL对象。因此编译器不会抱怨。

答案 3 :(得分:0)

按相反的顺序:

  • 您可以通过不创建新变量来消除警告,正如其他人指出的那样(仅使用new Url(urlToCheck);

但也许更好的方法是:

  • 使用URLUtil.isValidUrl(String url) - 查看它的来源我发现它不会创建一个可能更好的新url变量,但看起来它只是检查字符串是否以已知的scheme开头。由你来决定这是否足够