Defensive API evolution with Java interfaces

API evolution is something absolutely non-trivial. Something that only few have to deal with. Most of us work on internal, proprietary APIs every day. Modern IDEs ship with awesome tooling to factor out, rename, pull up, push down, indirect, delegate, infer, generalise our code artefacts. These tools make refactoring our internal APIs a piece of … Continue reading Defensive API evolution with Java interfaces

Syntax for calling “super” in Java 8 Defender methods

This is a very interesting discussion. How to reference default methods from implemented interfaces throughout the class / interface hierarchy? Situation: interface K { int m() default { return 88; } } interface J extends K { int m() default { return K.super.m(); } // ^^^^^^^^^^^^ How to express this? } Solution ideas: K.super.m() super.K.m() … Continue reading Syntax for calling “super” in Java 8 Defender methods

Survey about the Java 8 “default method” syntax

Influence the future of Java now! Participate in this official survey by Brian Goetz: https://www.surveymonkey.com/s/9VPJZQQ