[英]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.