import java.util.List; import java.util.function.Function; class RunnableGroup implements Runnable { public RunnableGroup(List list, Function function) {} @Override public void run() {} } class Usage { public static void m(List list, Function function) { run(new RunnableGroup<>(list, function)); } static K run(K runnable) { return runnable; } }