我有一个数组列表,可能包含组件或复合材料,每个组件或复合材料都有一个税收字段,我希望获取该值。此方法的目的是获取所有组件而在阵列list.A部件复合材料还可以包含复合。问题是,当一个组件包含复合,我的方法不会在复合递归方法
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;
}
其他人已经回答了,但到底是什么'getTaxDue()'做什么?将逻辑从'calculateTaxDueByComponents'移动到'getTaxDue'并且只有一个方法似乎更有意义。或者至少在'getTaxDue'中调用'calculateTaxDueByComponents',这样你就不需要每次都明确地做两件事情。 – Groo 2012-01-13 11:31:31