递归方法

Jac*_*lch 3 java recursion

我有一个数组列表,可能包含组件或复合材料,每个组件或复合材料都有一个税收字段,我想获得该值.此方法的目的是获得阵列中所有组件和复合材料的总税额list.A组件也可以包含复合.问题是当组件包含复合时,My方法不会获得复合中的值

ArrayList allprinceSubjects = new ArrayList();
public double calculateTaxDueByComponents(){
    double totaltaxdue=0;
    Iterator iterator = vassalsanddukes.iterator();
    while(iterator.hasNext()){
        RiruritaniaSubjects vassalandduke=(RiruritaniaSubjects) iterator.next();
        totaltaxdue+=vassalandduke.getTaxDue();
        vassalandduke.calculateTaxDueByComponents();


    }
    return totaltaxdue;
}
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 7

问题是,当你calculateTaxDueByComponents()递归调用时,你丢弃结果:

vassalandduke.calculateTaxDueByComponents();
Run Code Online (Sandbox Code Playgroud)

改为

totaltaxdue += vassalandduke.calculateTaxDueByComponents();
Run Code Online (Sandbox Code Playgroud)