我有一个可以包含组件或复合的数组列表,并且每个组件或组合都有一个我想获得值的税字段。此方法的目的是获得所有组件和组合的应税总额在数组列表中。组件也可以包含复合。问题是当组件包含复合时,我的方法没有得到复合中的值
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;
}
答案 0 :(得分:7)
问题在于,当您递归调用calculateTaxDueByComponents()
时,您会丢弃结果:
vassalandduke.calculateTaxDueByComponents();
将其更改为
totaltaxdue += vassalandduke.calculateTaxDueByComponents();
答案 1 :(得分:3)
不确定您的业务逻辑是如何实现的,但我认为以下行需要更改:
vassalandduke.calculateTaxDueByComponents();
将其更改为:
totaltaxdue += vassalandduke.calculateTaxDueByComponents();
答案 2 :(得分:1)
您没有将vassalandduke.calculateTaxDueByComponents();
的值分配给任何内容 - 您最有可能将其添加到totaltaxdue,而不是这样吗?
答案 3 :(得分:0)
将方法的返回值存储在totaltaxdue中,如下所示。
totaltaxdue += vassalandduke.calculateTaxDueByComponents();