Запитання з тегом «default-method»

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

5
Чому в методах інтерфейсу Java 8 "остаточний" не дозволено?
Однією з найбільш корисних особливостей Java 8 є нові defaultметоди інтерфейсів. По суті є дві причини (можуть бути й інші), чому вони були введені: Надання фактичних реалізацій за замовчуванням. Приклад:Iterator.remove() Дозвіл еволюції API JDK Приклад: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 } } } Я отримаю повну семантику синхронізації, яку можу використовувати також у класах. Однак я не можу використовувати synchronizedмодифікатор …

5
Java8: Чому заборонено визначати метод за замовчуванням для методу з java.lang.Object
Методи за замовчуванням - це гарний новий інструмент у нашій панелі інструментів Java. Однак я спробував написати інтерфейс, який визначає defaultверсію toStringметоду. Java каже мені, що це заборонено, оскільки методи, оголошені в, java.lang.Objectможуть не defaultредагуватися. Чому це так? Я знаю, що існує правило "базовий клас завжди виграє", тому за замовчуванням …

1
Методи за замовчуванням Java 8 як риси: безпечні?
Чи безпечна практика використання методів за замовчуванням як версії рис чорношкірих людей у Java 8? Деякі стверджують, що це може зробити панди сумними, якщо ви використовуєте їх просто заради цього, адже це круто, але це не мій намір. Також часто нагадується, що методи підтримки за замовчуванням були введені для підтримки …

4
Коли ініціалізується інтерфейс із методом за замовчуванням?
Під час пошуку специфікації мови Java, щоб відповісти на це запитання , я дізнався це Перед ініціалізацією класу його прямий надклас повинен бути ініціалізований, але інтерфейси, реалізовані класом, не ініціалізовані. Аналогічно, суперінтерфейси інтерфейсу не ініціалізуються до ініціалізації інтерфейсу. З власної цікавості я спробував це, і, як очікувалося, інтерфейс InterfaceTypeне був …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.