Warum Java traditionell statische Schnittstellenmethoden nicht zuließ
In Java-Versionen vor 8 waren statische Methoden in Schnittstellen nicht zulässig, da es keine zwingenden Methoden gab technischer Grund, sie einzuführen. Die vorgeschlagene Aufnahme in Java 7 war mit unvorhergesehenen Komplikationen konfrontiert, die zu ihrer Entfernung führten.
Die Begründung für unveränderliche statische Methoden
Statische Methoden können zur Kompilierungszeit aufgelöst werden, da sie eine erfordern bekannte aufzurufende Klasse. Der dynamische Versand, der beispielsweise für Methoden verwendet wird, beinhaltet die Bestimmung des konkreten Typs des Objekts zur Laufzeit und kann daher nicht auf statische Methoden angewendet werden.
Statische Methoden überschreiben: Ein unnötiges Konzept
Überschreiben, bei dem eine Unterklasse eine Methode mit derselben Signatur wie ihre Oberklasse implementiert, wird für statische Methoden irrelevant. Dies liegt daran, dass die Klasse, die die gewünschte Methode enthält, zur Kompilierungszeit bekannt ist. Durch die explizite Angabe der Klasse entfällt die Notwendigkeit eines Überschreibens.
Java 8: Eine neue Ära für Schnittstellen
Mit der Einführung von Java 8 können Schnittstellen nun statische Methoden enthalten, Eine Funktion, die durch die Lambda-Ausdrucksunterstützung aktiviert wird. Allerdings sind Instanzfelder in Schnittstellen immer noch nicht zulässig.
Alternative Ansätze für „Konstruktorschnittstellen“
Um eine konsistente Factory-Methode für Klassen zu erzwingen, die IXMLizable implementieren, berücksichtigen Sie Folgendes:
Das obige ist der detaillierte Inhalt vonWarum waren statische Methoden in Java-Schnittstellen zunächst verboten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!