Ich las über Standardmethoden in Java 8 und ich blieb in einer Sache stecken - gibt es eine Möglichkeit, Standardmethode von der Schnittstelle aufzurufen, ohne sie zu implementieren, oder dynamischen Proxy verwendend? Durch die Verwendung nur eine einfache Art und Weise, wie in der folgenden Methoden:Wie explizit Standardmethode einfach, ohne Reflexion und dynamischer Proxy aufrufen?
interface DefaultTestInterface{
default void method1(){
//default method
}
}
class ImplementingClass implements DefaultTestInterface{
public void method1(){
//default method invocation in implementing method
DefaultTestInterface.super.method1();
}
void method2(){
//default method invocation in implementing class
DefaultTestInterface.super.method1();
}
}
public class Main {
public static void main(String[] args) {
//is there any way to simply invoke default method without using proxy and reflection?
}
}
lese ich ähnliche Fragen, aber die first wurde nur bei der Umsetzung der Verfahren mit Aufruf verbunden, und zwei andere mit dynamic Proxy using reflection und reflection verbunden.
Diese Lösungen sind ziemlich kompliziert und ich frage mich, ob es eine einfachere Möglichkeit gibt, es zu tun. Ich habe diese Artikel auch gelesen, aber ich habe keine Lösung für mein Problem gefunden. Ich wäre dankbar für jede Hilfe.
Sie wollen also eine Instanzmethode ohne Instanz verwenden ??? – fabian
Es gibt einige Verwirrung in Ihrer Frage. Eine * Standardmethode * einer Java 8-Schnittstelle ist bereits eine Implementierung. Wenn Sie kein klassenspezifisches Verhalten haben, das eine andere Implementierung benötigt, implementieren Sie einfach die Schnittstelle, indem Sie die Methode auslassen, die Sie als Standard verwenden möchten. Wenn Sie eine Methode von einer * Schnittstelle * aufrufen möchten, verwenden Sie stattdessen das Schlüsselwort * static *, um sie zu definieren. –
Nein @fabian, ich dachte irgendwie über Lösung mit Instanziierung nach. –