1

私はコードのこの部分を持っています:

/**
 * 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 が有効でない場合にクラッシュします。urlこれは機能しています。「問題」は、LINT が変数を使用していないと言っていることです。私は実際にそれを使用する必要はないので、ここに私の質問があります:

  • 他のより良いアプローチはありますか?
  • この行の lint チェックを抑制することはできますか?
4

4 に答える 4

5

変数を使用しておらず、おそらくメモリを浪費しているため、警告が表示されます。変数が必要ない場合は、次のようなことができます

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

    return isValid;
}
于 2013-11-06T12:11:21.583 に答える
4

それを行うことに問題はありませんが、変数は使用されません。

あなたは変えられる

URL url = new URL( urlToCheck );

new URL( urlToCheck );
于 2013-11-06T12:11:13.067 に答える
0

逆の順序で:

  • 他の人が指摘したように、新しい変数を作成しないことで警告を取り除くことができます(使用のみnew Url(urlToCheck);

しかし、おそらくより良いアプローチは次のとおりです。

  • 使用URLUtil.isValidUrl(String url)-ソースを見ると、より良いかもしれない新しい url 変数を作成していないことがわかりますが、文字列が既知のスキームで始まるかどうかをチェックするだけのようです。これで十分かどうかはあなた次第です
于 2013-11-06T14:33:47.277 に答える