1 /* 2 * @test /nodynamiccopyright/ 3 * @bug 8003280 4 * @summary Add lambda tests 5 * check that that void compatibility affects overloading as expected 6 * @compile VoidCompatibility.java 7 */ 8 class VoidCompatibility { 9 run()10 interface Runnable { void run(); } //1 get()11 interface Thunk<T> { T get(); } //2 12 schedule(Runnable r)13 void schedule(Runnable r) { } schedule(Thunk<?> t)14 void schedule(Thunk<?> t) { } 15 test()16 void test() { 17 schedule(() -> System.setProperty("done", "true")); //non-void most specific 18 schedule(() -> { System.setProperty("done", "true"); }); //1 19 schedule(() -> { return System.setProperty("done", "true"); }); //2 20 schedule(() -> System.out.println("done")); //1 21 schedule(() -> { System.out.println("done"); }); //1 22 schedule(Thread::yield); //1 23 schedule(Thread::getAllStackTraces); //non-void most specific 24 schedule(Thread::interrupted); //1 (most specific) 25 } 26 } 27