java - java中if循环内的返回类型

标签 java android oop logic

谁能解释一下这段代码是如何工作的。

  // 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 arrayCollection 包含不为 null 的 Bitmap 并且其 id 等于该方法的给定 id,则返回该 Bitmap 实例。

否则,返回null

正如fge提到的,方法必须满足所有可能的返回路径(异常(exception)情况除外)。

如果 null 未在循环之外返回,则代码将无法编译。

发生这种情况是因为如果不满足您的条件,您的循环将终止而不返回任何内容,您的方法也会终止。

关于java - java中if循环内的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093994/

相关文章:

java - 如何在 Android 中反序列化 Drupal JSON 服务字符串?

java - Android中SQLite的可变错误

java - Android 布局文本换行

java - 在ListView中加载多个布局

javascript - JavaScript 中的 "this"。对工厂内对象的引用

java - 使用 Java Synth xml 文件自定义组件?

java - 使用 Selenium 和 Java 13 自动化 Span

java - Android 在 edittext 上启用滚动

oop - raku 内置访问器方法可以被子类覆盖吗?

python - 参数的子类初始化