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?)
> 


Reply via email to