我不明白为什么在以下代码中返回null。请帮忙
public Crime getCrime(UUID id){
for (Crime crime: mCrimes){
if (crime.getId().equals(id)){
return crime;
}
}
return null;
}
答案 0 :(得分:3)
试着想象如果移除return null;
会发生什么。在那之后,你就会理解为什么要把它放在那里是必要的。
在该方法中,您循环浏览mCrimes
以检查是否存在其中一项罪行。 id等于参数id
。如果是,则归还该罪行。如果mCrimes
中的任何内容都不满足条件,那该怎么办?代码执行只会打破循环而......什么都不做?
我们无能为力,因为我们已声明方法返回Crime
。我们不能退出方法而不返回任何东西!我们必须返回一些值。由于该方法返回具有特定id的犯罪,如果传入的id与任何犯罪不对应,我们应该不返回任何来表示该id没有犯罪。
因为如果发生这种情况我们想要什么都不返回,我们写
return null;
答案 1 :(得分:0)
因为如果List / Array不包含传递的id,那么它不会从循环中的条件返回并且在循环结束旁边。
然后最后一个方法需要返回一些东西。
这就是为什么它返回null。