On Feb 12, 2014, at 4:05 PM, Wang Weijun <weijun.w...@oracle.com> wrote:
> This line does not compile > > Files.list(Paths.get("/secret")).forEach(x -> Files.write(x, new > byte[Files.size(x)]); > > because Files.write() and Files.size() throw IOE. Then what's the best way to > make it work? > It depends... Sometimes i will shuffle things under a method (static one if there are no captures and use a method ref). If i get *really* fed up i have been know to write stuff like the following: private static interface S<T, E extends IOException> { T apply() throws E; } private static <T, E extends IOException> T r(S<T, E> s) { try { return s.apply(); } catch (IOException t) { throw new UncheckedIOException(t); } } Paul. > (I find some old threads on this on lambda-dev. Maybe we have a recommended > way now?) >