我有一个返回列表的方法,但是当我运行代码时,出现Unreachable语句这个方法来自一个aidl文件并生成一个带有返回的映射.
代码:
List<String> list = new ArrayList<String>();
Public List<String> setMethod(Map map) {
ContentValues cv = null;
Iterator i = map.keySet().iterator();
Iterator j = map.values().iterator();
if(map.isEmpty() || map == null) {
return null;
} else {
try {
while(i.hasNext()) {
String str = (String) i.next();
Long l = (Long) j.next();
list.add(str);
cv.put(Storage.STR, str);
if(Provider.insert(Storage.Table, cv) < 0) {
return null;
}
}
if(list.isEmpty() || list == null) {
return null;
} else {
return mPathList;
}
} catch (Exception e) {
return null;
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个亮点,我可以为dolve做些什么呢?
你是从try块返回catch,所以永远不会到达最后一个return语句.
您的代码有多个返回路径.if如果您的条件得到满足,您将从第一个陈述返回,else部分是您有try阻止.在try你返回的基础上if,以及else如果没有异常发生你保证从try块返回,如果异常你有一个catch声明,你也从那里返回.因此,您的代码不可能继续下去.因此,最后一个return语句无法访问.