public void allSubExps(String type, List result) { Exp e; Iterator<Exp> i = exps.iterator(); while (i.hasNext()) { e = i.next(); if (e.getClass().getName().equals(type)) result.add(e); e.allSubExps(type, result); } }