【问题标题】:Variable never used从未使用过的变量
【发布时间】:2013-11-17 16:04:27
【问题描述】:

我有这部分代码:

/**
 * 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 对象,如果字符串 URL 无效,它会崩溃。这是有效的,“问题”是 LINT 说我没有使用 url 变量。 我真的不必使用它,所以这是我的问题:

  • 还有其他更好的方法吗?
  • 我可以禁止仅针对这一行进行 lint 检查吗?

【问题讨论】:

  • 删除URL url = 。警告应该消失。
  • 您可以禁用 lint 检查
  • 你在 try 块中声明和初始化 URL,在 try 块的范围内,永远不会使用 url。所以这个警告仍然存在。如果你不想使用 url,那么只需删除该行。
  • 怎么样; stackoverflow.com/questions/2230676/…。顺便在代码流中使用异常总是一个坏主意

标签: java android exception


【解决方案1】:

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

你可以改变

URL url = new URL( urlToCheck );

new URL( urlToCheck );

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      你可以替换

      网址 url = 新网址( urlToCheck );

      类似这样的:

      new URL( urlToCheck );
      

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

      【讨论】:

        【解决方案4】:

        倒序:

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

        但也许更好的方法是:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-06
          • 1970-01-01
          • 1970-01-01
          • 2018-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多