繁体   English   中英

递归方法

[英]Recursive method

我有一个数组列表,可能包含组件或复合材料,每个组件或复合材料都有一个税收字段,我想获得该值。此方法的目的是获得阵列中所有组件和复合材料的总税额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;
}

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

vassalandduke.calculateTaxDueByComponents();

改为

totaltaxdue += vassalandduke.calculateTaxDueByComponents();

不确定您的业务逻辑是如何实现的,但我认为以下行需要更改:

vassalandduke.calculateTaxDueByComponents();

将其更改为:

totaltaxdue += vassalandduke.calculateTaxDueByComponents();

你没有赋值vassalandduke.calculateTaxDueByComponents(); 什么 - 你最有可能将它添加到totaltaxdue,不是这样吗?

在totaltaxdue中返回方法的值,如下所示。

totaltaxdue += vassalandduke.calculateTaxDueByComponents();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM