import java.util.Arrays; class NonCapturing { public static void main(String... args) { run(new Runnable() { @Override public void run() { System.out.println("Hey!"); } }); } private static void run(Runnable run) { run.run(); } } class Capturing { public static void main(final String... args) { run(new Runnable() { @Override public void run() { System.out.println("Hey! " + Arrays.toString(args)); } }); } private static void run(Runnable run) { run.run(); } }