static O[] flattenArray_recursive(O... a) { new L l; if (a != null) for (O x : a) if (x cast O[]) l.addAll(flattenList2(asList(x))); else if (x cast Collection) l.addAll(flattenList2(x)); else l.add(x); ret asObjectArray(l); }