I've noticed that javac allows to use MethodHandle.invokeExact() or MethodHandle.invokeGeneric if the source version is 1.6 It's not a good idea because you can't use a real 1.6 javac to compile these methods. Rémi