Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中读取递归列表_Java_Android_List_Class_Recursion - Fatal编程技术网

如何在java中读取递归列表

如何在java中读取递归列表,java,android,list,class,recursion,Java,Android,List,Class,Recursion,我无法读取项目的递归列表 我有一个类别树,每个类别都有子类,而子类又可以有子类(不知道有多少) 这是我的班级: public class Category { public int HasChild = 0; public int level; public boolean isOpened = false; @ElementList(entry = "Category", required = false, empty = true, data = true,

我无法读取项目的递归列表

我有一个类别树,每个类别都有子类,而子类又可以有子类(不知道有多少)

这是我的班级:

public class Category {
    public int HasChild = 0;
    public int level;
    public boolean isOpened = false;
    @ElementList(entry = "Category", required = false, empty = true, data = true, inline = true)
    private List<Category> childrenCategory;

    @Attribute(required = false)
    private String id;
    @ElementList(entry = "Name", inline = true, required = false)
    public List<Name> name;

    public List<Category> getCategoy() {
        return childrenCategory;
    }

    public void setCategoy(List<Category> categoy) {
        childrenCategory = categoy;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public List<Name> getName() {
        return name;
    }

    public void setName(List<Name> name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Category [childrenCategory=" + childrenCategory + ", id=" + id
                + "]";
    }

}
这里是调用函数的地方,项目的初始步骤是:

object = category;
            function(object);
我的问题是,我可以通过这种方式控制,只有在我想访问第二级时,事情才会是顶级的:

object=category.getCategoy().get(0); 功能(对象)

但这是不可能的,因为一切都必须是递归的,而不是手写的

我是否应该阅读第一篇文章,然后将项目迭代到下一个级别


帮助我,谢谢

递归调用函数。这是代码

void function(Category cat) {
    if (cat.getCategoy().size() > 0) {
        for (Category iterable_element : cat.getCategoy()) {
            log.i("Has "+cat.getCategoy().size() + "  children.");
            function(iterable_element);  // again call it recursively
        }
    } 
    else {
        log.i("No children.");
    }
}

非常感谢你,你帮了我很多忙!
void function(Category cat) {
    if (cat.getCategoy().size() > 0) {
        for (Category iterable_element : cat.getCategoy()) {
            log.i("Has "+cat.getCategoy().size() + "  children.");
            function(iterable_element);  // again call it recursively
        }
    } 
    else {
        log.i("No children.");
    }
}