谁能解释一下这段代码是如何工作的。
// Method returns null if bitmap not available
public Bitmap getBitMap(long id) {
for ( Bitmap item : myBitmaps.keySet() ) {
if ( item != null) {
if ( item.getId() == id ) {
return item;
}
}
}
return null;
为什么可以在函数中使用两个返回值(包括 if block 内的一个)。抱歉,我是 java 新手。
最佳答案
简单。
第一个 return
语句仅在满足两个嵌套条件时才返回 item
。
循环结束后(即两个嵌套条件不满足),第二个 return
语句将触发并返回 null
。
简而言之,如果您的 myBitmaps
array
或 Collection
包含不为 null 的
并且其 Bitmap
id
等于该方法的给定 id
,则返回该 Bitmap
实例。
否则,返回null
。
正如fge提到的,方法必须满足所有可能的返回路径(异常(exception)情况除外)。
如果 null
未在循环之外返回,则代码将无法编译。
发生这种情况是因为如果不满足您的条件,您的循环将终止而不返回任何内容,您的方法也会终止。
关于java - java中if循环内的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093994/