Вопросы с тегом «default-method»

540
Когда использовать: метод интерфейса Java 8+ по умолчанию, а не абстрактный метод

Java 8 допускает реализацию методов по умолчанию в интерфейсах, называемых Методами по умолчанию . Я запутался между тем, когда я бы использовал этот вид interface default methodвместо abstract class(с abstract method(s)). Так когда же следует использовать интерфейс с методами по умолчанию и когда...

335
Почему «final» не допускается в интерфейсных методах Java 8?

Одной из наиболее полезных функций Java 8 являются новые defaultметоды интерфейсов. По сути, есть две причины (могут быть и другие), почему они были введены: Предоставление фактических реализаций по умолчанию. Пример:Iterator.remove() С учетом эволюции JDK API. Пример:Iterable.forEach() С точки...

247
Явный вызов метода по умолчанию в Java

Java 8 представляет методы по умолчанию, чтобы обеспечить возможность расширения интерфейсов без необходимости изменять существующие реализации. Интересно, возможно ли явно вызвать реализацию метода по умолчанию, когда этот метод был переопределен или недоступен из-за противоречивых реализаций по...

210
По какой причине синхронизация не допускается в интерфейсных методах Java 8?

В Java 8 я могу легко написать: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Я получу полную семантику синхронизации, которую я могу использовать и в классах. Однако я не могу...

130
Java8: почему запрещено определять метод по умолчанию для метода из java.lang.Object

Методы по умолчанию - отличный новый инструмент в нашем наборе инструментов Java. Однако я попытался написать интерфейс, определяющий defaultверсию toStringметода. Java сообщает мне, что это запрещено, поскольку методы, объявленные в, java.lang.Objectнельзя defaultредактировать. Почему это так? Я...

116
Методы по умолчанию в Java 8 как признаки: безопасно?

Безопасно ли использовать методы по умолчанию в качестве плохой версии трейтов в Java 8? Некоторые утверждают, что это может расстроить панд, если вы используете их только ради этого, потому что это круто, но это не мое намерение. Также часто напоминают, что методы по умолчанию были введены для...

94
Когда инициализируется интерфейс с методом по умолчанию?

При поиске ответа на этот вопрос в спецификации языка Java я узнал, что Перед инициализацией класса должен быть инициализирован его прямой суперкласс, но интерфейсы, реализованные классом, не инициализируются. Точно так же суперинтерфейсы интерфейса не инициализируются до инициализации интерфейса....