This doesn't look quite right: public class DefinitelyAssigned { public static void main(String[] args) { int i; exec() { i = 0; i++; } } static void exec({==>void} block) { block.invoke(); } } DefinitelyAssigned.java:9: variable i might not have been initialized i++; ^ 1 error Regards, Mark