import java.util.List; import java.util.Set; import java.util.concurrent.Callable; import java.util.function.Function; class Test { private List query(String request) { System.out.println(request); return null; } private List query(String request, Object context) { System.out.println(request + context); return null; } private List query1(){ return null;} private List query1(String request) { System.out.println(request); return null; } private List query1(String request, Object context) { System.out.println(request + context); return null; } private static Set replyWith(Function> futureFn){ System.out.println(futureFn); return null; } private static Set replyWith(Callable> fn) { System.out.println(fn); return null; } { Set m = replyWith(this::query); System.out.println(m); Set m1 = replyWith(this::query1); System.out.println(m1); } }