blob: 74c7eee700dc821efd93c22a6c32b279775902cc [file] [log] [blame]
import java.util.Arrays;
import static java.lang.System.out;
final class LambdaMain {
public static void main(final String... args) {
for (final A<String, X> a : Arrays.<A<String, X>>asList(new A<String, X>() {
@Override
public String foo(final String ignored)
throws X {
throw new X();
}
}, ignored -> { throw new X(); }))
try {
test(a, "Bob");
} catch (final X x) {
x.printStackTrace();
}
try {
out.println(test(new A<String, X>() {
@Override
public String foo(final String ignored)
throws X {
throw new X();
}
}, "Bob"));
} catch (final Exception e) {
e.printStackTrace();
}
try {
out.println(test(ignored -> { throw new X(); }, "Bob"));
} catch (final Exception e) {
e.printStackTrace();
}
}
static class X
extends Exception {}
interface A<T, E extends Exception> {
T foo(T ignored)
throws E;
}
static <T, E extends Exception> T test(final A<T, E> a, final T ignored)
throws E {
return a.foo(ignored);
}
}
final class LambdaMainTest {
public void main(A<String> a) {
println(test(a));
}
public void println(boolean x) {}
public void println(String x) {}
interface A<T> {
T foo(T ignored) ;
}
static <T> T test (final A<T> a) {
return null;
}
}