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

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

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

4
Явный вызов метода по умолчанию в Java
Java 8 представляет методы по умолчанию, чтобы обеспечить возможность расширения интерфейсов без необходимости изменять существующие реализации. Интересно, возможно ли явно вызвать реализацию метода по умолчанию, когда этот метод был переопределен или недоступен из-за противоречивых реализаций по умолчанию в различных интерфейсах. interface A { default void foo() { System.out.println("A.foo"); } } …

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

5
Java8: почему запрещено определять метод по умолчанию для метода из java.lang.Object
Методы по умолчанию - отличный новый инструмент в нашем наборе инструментов Java. Однако я попытался написать интерфейс, определяющий defaultверсию toStringметода. Java сообщает мне, что это запрещено, поскольку методы, объявленные в, java.lang.Objectнельзя defaultредактировать. Почему это так? Я знаю, что существует правило «базовый класс всегда побеждает», поэтому по умолчанию (каламбур;) любая defaultреализация …

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

4
Когда инициализируется интерфейс с методом по умолчанию?
При поиске ответа на этот вопрос в спецификации языка Java я узнал, что Перед инициализацией класса должен быть инициализирован его прямой суперкласс, но интерфейсы, реализованные классом, не инициализируются. Точно так же суперинтерфейсы интерфейса не инициализируются до инициализации интерфейса. Из собственного любопытства попробовал и, как и ожидалось, интерфейс InterfaceTypeне инициализировался. public …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.