static AutoCloseable combineAutoCloseables(final AutoCloseable a, final AutoCloseable b) { ret a == null ? b : b == null ? a : autocloseable { pClose(a); pClose(b); }; } static AutoCloseable combineAutoCloseables(AutoCloseable a, AutoCloseable b, AutoCloseable c, AutoCloseable... more) { ret combineAutoCloseables(concatLists(ll(a, b, c), asList(more))); } static AutoCloseable combineAutoCloseables(Iterable l) { ret foldl(func(AutoCloseable a, AutoCloseable b) -> AutoCloseable { combineAutoCloseables(a,b) }, null, l); }