static S[] toStringArray(Collection c) { S[] a = new S[l(c)]; Iterator it = c.iterator(); for (int i = 0; i < l(a); i++) a[i] = it.next(); ret a; } static S[] toStringArray(O o) { if (o instanceof S[]) return (S[]) o; else if (o instanceof Collection) return toStringArray((Collection) o); else throw fail("Not a collection or array: " + getClassName(o)); }