我有一个在启动时执行的活动的异步任务。如果用户手动选择位置,则url包含作为参数传递给asynctask的值,并且如果用户没有指定位置,则异步任务使用默认URL。我的问题是,如果未指定参数,我无法在代码上调用s/lapply
。有没有办法检查并查看参数是否已传递到异步任务?以下是我的尝试。我已经尝试了url[0]
和url[0].isEmpty()
,但都给了我url[0] == null
错误。
IndexOutOfBounds
答案 0 :(得分:1)
尝试if(url.length ==0)
检查它是否为空!
答案 1 :(得分:1)
您可以通过以下方式检查参数是否已提供:
if(url == null)
检查if(url[0].length == 0)
时会得到 ArrayIndexOutOfBoundsException ,因为url
是null
,这基本上意味着数组包含0个元素,这也意味着你可以& #39;访问url[0]
,因为它会被视为超出范围。
答案 2 :(得分:0)
您知道String...
中的String... url
是一个数组吗?因此,您可以实现多级检查:
检查url
是否为空:
if(url.length() == 0){
//error, no URL given
}
检查url
是否有值,但为null:
if(url[0] == null){
//error, url is null
}