// version 8: class ValLambda { public void easyLambda() { final java.lang.Runnable foo = (Runnable) () -> { }; } public void easyIntersectionLambda() { final java.lang.Object foo = (Runnable & java.io.Serializable) () -> { }; final java.lang.Object bar = (java.io.Serializable & Runnable) () -> { }; } public void easyLubLambda() { final java.lang.Runnable foo = (System.currentTimeMillis() > 0) ? (Runnable) () -> { } : (Runnable) System.out::println; } // public void castLubLambda() { // Runnable foo = (Runnable) ((System.currentTimeMillis() > 0) ? () -> {} : System.out::println); // lombok.val foo = (Runnable) ((System.currentTimeMillis() > 0) ? () -> {} : System.out::println); // } }