public int product(Iterator i) { return productHelp(i, 1); }
int productHelp(Iterator i, int accumulator) { if (i.hasNext()) { return productHelp(i, accumulator * ((Integer)i.next()).intValue()); } else { return accumulator; } } }
// And, in a separate file:
import java.util.*;
public class Example2 extends Example { int productHelp(Iterator i, int accumulator) { if (accumulator < 1) { throw new RuntimeException("accumulator to productHelp must be >= 1"); } else { return super.productHelp(i, accumulator); } }
public static void main(String[] args) { LinkedList l = new LinkedList(); l.add(new Integer(0)); new Example2().product(l.listIterator()); } }