java - 递归函数总是返回 null

标签 java android

我正在尝试从其 ID 中检索类别对象。 类别是可以包含其他类别和帖子的层次类。 我的实现是递归的:

public static AAbstarctCategory getCategory(ACategory category, String id) {
    if (id == category.id) {
        return category;

    }
    else if (category.categories.containsKey(id)) {
        return category.categories.get(id);

    }
    else if (category.posts.containsKey(id)) {
        return category.posts.get(id);

    }
    else {
        for (ACategory c : category.categories.getArray()) {
           getCategory(c,id);
        }
    }
    return null;
}

问题是该函数总是返回 null... 请提出建议:)

最佳答案

您没有使用递归调用返回的值。

改变

    for (ACategory c : category.categories.getArray()) {
       getCategory(c,id);
    }

    for (ACategory c : category.categories.getArray()) {
       AAbstarctCategory cat = getCategory(c,id);
       if (cat != null)
           return cat;
    }

关于java - 递归函数总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32624009/

相关文章:

Java 线程 - 如何使霍夫变换运行得更快

java - 我可以创建一次具有最大操作量的循环吗?

java - PostgreSQL 9 JDBC 驱动程序为存储过程返回不正确的元数据

java - Redisson 在存储 java POJO 时创建了一个额外的键

java - 我无法登录或注册我的应用程序

android - 根据麦克风输入振动Android手机

安卓通知灯不工作

java - php 值 Java 字节数组

java - 如何在 EclipseLink 中创建 JAXBContext?

Java:使用局部变量的匿名内部类