java - 函数在应该返回 boolean 值时却没有返回 boolean 值

标签 java return

在下面的代码中,我检查给定的 url 是否以允许的文件类型结尾(可能的类型:.jpg、.jpeg、.png 和 .gif)。类型列表保存在数组列表中,其中包含 UI 的文本描述(例如“JPG 图像”)。

我的目的是让函数遍历带有描述的列表,并使用相应的 URL 检查方法检查 url。

我希望这段代码能够工作,因为我相信每个场景都已被考虑在内:如果它是 JPG、PNG 或 GIF,则返回 true,否则返回 false。但它仍然存在错误:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
This method must return a result of type boolean

这显然意味着某个地方的返回出了问题。我忽略了什么?

private boolean isImageURL(ImageURL url) {
    for (String type : fileTypes) {
        if (type.equalsIgnoreCase("JPG Images")) {
            if (url.isJPG() || url.isJPEG()) {
                return true;
            }
        } else if (type.equalsIgnoreCase("PNG Images")) {
            if (url.isPNG()) {
                return true;
            }
        } else if (type.equalsIgnoreCase("GIF Images")) {
            if (url.isGIF()) {
                return true;
            }
        } else {
            return false;
        }
    }
}

最佳答案

没有涵盖所有可能的执行路径。例如,如果类型是“JPG Images”,但 url 既不是 JPG 也不是 JPEG,则该方法不会返回任何内容。

删除最后一个 else 子句,并在方法末尾简单地返回 false

关于java - 函数在应该返回 boolean 值时却没有返回 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902218/

相关文章:

java - 用于 ?在返回声明中

Java Swing 如何重置 JTextArea

java - 有什么方法可以在 Spring ApplicationContext 加载后像带注释的类一样扫描所有 @Component

java - macOS:创建 .app bundle

java - 如何调用从 native 代码返回 char[] 的 Java 方法?

python - 使用类/返回列表进行多处理 - Python

android - 从Android中的事件处理方法返回的 bool 值是什么意思

JavaFX:仅声明节点即可更改其他节点的背景

c - 为什么 return 语句适用于 void 作为 C 中的返回类型?

java - Getter 方法返回两个不同的对象identityHashCodes