Если обновление для вас до более поздней версии является опцией, вы можете использовать методы private
в интерфейсе
В Java 9 и более поздних версиях интерфейсы допускают закрытый (не абстрактные методы. См. JSL 9.4 :
Метод в теле интерфейса может быть объявлен public
или private
(§6.6). Если модификатор доступа не указан, метод неявно public
...
И эти закрытые методы могут также иметь статус c (тот же источник):
... Допускается, чтобы объявление метода интерфейса содержало как private, так и stati c.
Если вам нужно остаться на Java 8, вы можете использовать закрытые для пакета классы и методы (да, это не приватно для типа, но лучше использовать закрытое для пакета) альтернатива)
public interface Interface {
default void doSomething() {
InterfaceHelper.doSomething();
}
}
class InterfaceHelper {
static void doSomething() { //package-private class and method
}
}