import java.util.function.Supplier; public class Main implements Runnable, Supplier, Interface { private static final String name = "John"; private static final int number = 42; private static final double funnyNumber = 6.9; public static void main(String[] args) { final var main = new Main(); main.sayHello(); try { main.throwSomething(); } catch (Throwable e) { System.err.println("Caught " + e.getMessage()); } finally { System.err.println("Finally block"); } } @Override public void run() { Main.main(new String[] { "Hello" }); } @Override public Integer get() { return number; } @Override public String getName() { return name; } public void throwSomething() throws Throwable { throw new Throwable() { @Override public String getMessage() { return "Hello"; } }; } public static class Inner { private static final String name = "Inner John"; } }