Domande taggate «default-method»

15
Quando utilizzare: metodo predefinito dell'interfaccia Java 8+, rispetto al metodo astratto
Java 8 consente l'implementazione predefinita dei metodi nelle interfacce chiamate Metodi predefiniti . Sono confuso tra quando dovrei usare quel tipo di interface default method, anziché un abstract class(con abstract method(s)). Quindi quando utilizzare l'interfaccia con i metodi predefiniti e quando utilizzare una classe astratta (con i metodi astratti)? Le …

5
Perché "final" non è consentito nei metodi di interfaccia Java 8?
Una delle funzionalità più utili di Java 8 sono i nuovi defaultmetodi sulle interfacce. Ci sono essenzialmente due ragioni (potrebbero essercene altre) per cui sono state introdotte: Fornire implementazioni predefinite effettive. Esempio:Iterator.remove() Consentire l'evoluzione dell'API JDK. Esempio:Iterable.forEach() Dal punto di vista di un progettista API, mi sarebbe piaciuto poter usare …

4
Chiamare esplicitamente un metodo predefinito in Java
Java 8 introduce metodi predefiniti per fornire la possibilità di estendere le interfacce senza la necessità di modificare le implementazioni esistenti. Mi chiedo se sia possibile invocare esplicitamente l'implementazione predefinita di un metodo quando tale metodo è stato sovrascritto o non è disponibile a causa di implementazioni predefinite contrastanti in …

2
Qual è il motivo per cui "sincronizzato" non è consentito nei metodi di interfaccia Java 8?
In Java 8, posso facilmente scrivere: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Otterrò la semantica della sincronizzazione completa che posso usare anche in classe. Non posso, tuttavia, utilizzare il synchronizedmodificatore …

5
Java8: Perché è vietato definire un metodo predefinito per un metodo da java.lang.Object
I metodi predefiniti sono un bel nuovo strumento nella nostra casella degli strumenti Java. Tuttavia, ho provato a scrivere un'interfaccia che definisce una defaultversione del toStringmetodo. Java mi dice che questo è proibito, poiché i metodi dichiarati injava.lang.Object potrebbero non essere modificati default. Perché è così? So che esiste la …


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.