Как получить последнее свойство объекта рекурсивно - PullRequest
0 голосов
/ 11 октября 2019

У меня есть список типа Classes. Класс Classes включает 3 свойства (индекс, имя, классы). Подклассы также содержат индекс, имя, классы и т. Д. Что я хочу сделать, это получить значение индекса последнего объекта классов. Я написал несколько кодов. Я могу получить значение индекса последнего объекта, но затем возвращаемое значение метода меняет нулевое значение. Как это решить?

    public Long getClasses (List<Classes> classes){
        Long index=null;

        for(int i=0;i <classes.size(); i++) {
            if(classes.get(i).classes().size()>0) {
                getClasses(classes.get(i).getClasses());
            }
            else {
              index= classes.get(i).getIndexValue();
              break;
            }
        }
        return index;
    }

1 Ответ

1 голос
/ 11 октября 2019

В вашем коде, когда getClasses вызывается репрессивно, вы не возвращаете значение, поступающее от предстоящих вызовов метода. Замените ваш код, как показано ниже:

    public Long getClasses (List<Classes> classes){


            for(int i=0;i <classes.size(); i++){
                if(classes.get(i).classes().size()>0){
                    //Change is here
                    return getClasses(classes.get(i).getClasses());
                }else{
                  return classes.get(i).getIndexValue();
                }
            }
            return null;
        } 
...