Doesn't java now let you have both private methods in interfaces and default implementations of the interface methods?
$ cat Foo.java interface Foo { private String jimbo() { return "yup"; } } $ javap -c -private Foo Compiled from "Foo.java" interface Foo { private java.lang.String jimbo(); Code: 0: ldc #1 // String yup 2: areturn }
interface Bar { default boolean isAwesome() { return true; } }