Почему поле "private static" не разрешено в интерфейсе Java 8?
Когда я пытаюсь скомпилировать следующий код
public interface SomeInterface{
private static Logger logger = Logger.getLogger();
public default void someMethod(){
logger.info("someMethod: default implementation");
}
}
Я получаю ошибку
Illegal modifier for the interface field SomeInterface.logger; only public, static & final are permitted
Когда я удаляюprivate
модификатор, код компилируется, но я не хочу, чтобы другие классы из пакета видели это поле.
Почему Java не позволяет мне делать такие вещи, когда это действительно имеет смысл?