Als «default-method» getaggte Fragen

15
Verwendungszweck: Standardmethode für die Java 8+ -Schnittstelle im Vergleich zur abstrakten Methode
Java 8 ermöglicht die Standardimplementierung von Methoden in Schnittstellen, die als Standardmethoden bezeichnet werden . Ich bin verwirrt darüber, wann ich diese Art von interface default methodanstelle von abstract class(mit abstract method(s)) verwenden würde. Wann sollte eine Schnittstelle mit Standardmethoden verwendet werden und wann sollte eine abstrakte Klasse (mit abstrakten …

5
Warum ist "final" in Java 8-Schnittstellenmethoden nicht zulässig?
Eine der nützlichsten Funktionen von Java 8 sind die neuen defaultMethoden für Schnittstellen. Es gibt im Wesentlichen zwei Gründe (es kann andere geben), warum sie eingeführt wurden: Bereitstellung der tatsächlichen Standardimplementierungen. Beispiel:Iterator.remove() Berücksichtigung der JDK-API-Evolution. Beispiel:Iterable.forEach() Aus Sicht eines API-Designers hätte ich gerne andere Modifikatoren für Schnittstellenmethoden verwenden können, z …

4
Explizites Aufrufen einer Standardmethode in Java
In Java 8 werden Standardmethoden eingeführt , mit denen Schnittstellen erweitert werden können, ohne dass vorhandene Implementierungen geändert werden müssen. Ich frage mich, ob es möglich ist, die Standardimplementierung einer Methode explizit aufzurufen, wenn diese Methode überschrieben wurde oder aufgrund widersprüchlicher Standardimplementierungen in verschiedenen Schnittstellen nicht verfügbar ist. interface A …

2
Was ist der Grund, warum "synchronisiert" in Java 8-Schnittstellenmethoden nicht zulässig ist?
In Java 8 kann ich leicht schreiben: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Ich werde die vollständige Synchronisationssemantik erhalten, die ich auch in Klassen verwenden kann. Ich kann den synchronizedModifikator …

5
Java8: Warum ist es verboten, eine Standardmethode für eine Methode aus java.lang.Object zu definieren?
Standardmethoden sind ein schönes neues Tool in unserer Java-Toolbox. Ich habe jedoch versucht, eine Schnittstelle zu schreiben, die eine defaultVersion der toStringMethode definiert. Java sagt mir, dass dies verboten ist, da in deklarierte Methoden java.lang.Objectmöglicherweise nicht defaultbearbeitet werden. Warum ist das so? Ich weiß, dass es die Regel "Basisklasse gewinnt …

1
Java 8 Standardmethoden als Merkmale: sicher?
Ist es eine sichere Praxis, Standardmethoden als Version von Merkmalen für Arme in Java 8 zu verwenden? Einige behaupten, es könnte Pandas traurig machen, wenn man sie nur deswegen benutzt, weil es cool ist, aber das ist nicht meine Absicht. Es wird auch oft daran erinnert, dass Standardmethoden eingeführt wurden, …

4
Wann wird eine Schnittstelle mit einer Standardmethode initialisiert?
Während sie durch die Java Language Specification Suche zu beantworten diese Frage , habe ich gelernt , dass Bevor eine Klasse initialisiert wird, muss ihre direkte Oberklasse initialisiert werden, aber von der Klasse implementierte Schnittstellen werden nicht initialisiert. In ähnlicher Weise werden die Superschnittstellen einer Schnittstelle nicht initialisiert, bevor die …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.