在java中循环返回类型

Rub*_*ban 0 java oop logic android

任何人都可以解释这个代码是如何工作的

  // 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;
Run Code Online (Sandbox Code Playgroud)

怎么可能在function.sorry中使用两个返回(包括一个if if block)我是java的新手.

Men*_*ena 6

简单.

只有满足两个嵌套条件时,第一个return语句才返回.item

一旦你的循环结束(又名两个嵌套条件成立),第二个return声明触发器和回报null.

简而言之,如果您的myBitmaps arrayCollection包含Bitmap不是null并且其id等于id方法的给定,Bitmap则返回该实例.

否则,null返回.

正如fge所提到的,一种方法必须满足所有可能的返回路径(除了特殊条件).

如果null没有在循环外返回,代码将无法编译.

这会发生,因为如果你的条件没有得到满足,你的循环将终止而不返回任何东西,你的方法也是如此.