### Question:
IOUtils { public static <T extends AutoCloseable, E extends Throwable> void close( BiFunction<String,Throwable,E> constructor, Collection<T> closeables ) throws E { close( constructor, closeables.toArray( new AutoCloseable[0] ) ); } private  IOUtils(); static void closeAll( Collection<T> closeables ); static void closeAllUnchecked( Collection<T> closeables ); @SafeVarargs static void closeAllUnchecked( T... closeables ); static void closeAllSilently( Collection<T> closeables ); @SafeVarargs static void closeAll( T... closeables ); @SafeVarargs static void closeAllSilently( T... closeables ); static void close( BiFunction<String,Throwable,E> constructor, Collection<T> closeables ); @SafeVarargs static void close( BiFunction<String,Throwable,E> constructor, T... closeables );  }### Answer:
@Test public void closeMustIgnoreNullResources() throws Exception { AutoCloseable a = () -> {}; AutoCloseable b = null; AutoCloseable c = () -> {}; IOUtils.close( IOException::new, a, b, c ); }