我有这部分代码:
/**
* 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
变量。
我真的不必使用它,所以这是我的问题:
答案 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开头。由你来决定这是否足够