So simulieren Sie die Methodenübergabe per Referenz in Java
In Java mag die Übergabe von Methoden als Parameter wie ein schwer fassbares Konzept erscheinen, aber Es gibt alternative Ansätze, die eine ähnliche Funktionalität erreichen können. Eine solche Technik ist die Verwendung von Schnittstellen.
Obwohl Schnittstellen selbst keine spezifischen Methodenimplementierungen darstellen können, definieren sie einen Vertrag, der die Methodensignaturen angibt. Dadurch können Sie anonyme innere Klassen oder Lambda-Ausdrücke erstellen, die sich an die Schnittstelle halten und die gewünschte Methodenimplementierung bereitstellen.
Betrachten Sie das folgende Beispiel, das darauf abzielt, das Verhalten der Referenzübergabe für Methoden nachzuahmen:
public void setAllComponents(Component[] myComponentArray, Command command) { for (Component leaf : myComponentArray) { if (leaf instanceof Container) { //recursive call if Container Container node = (Container) leaf; setAllComponents(node.getComponents(), command); } //end if node command.execute(leaf); } //end looping through components }
Hier ist Command eine Schnittstelle, die die Ausführungsmethode definiert. Anschließend können Sie Instanzen dieser Schnittstelle erstellen, die die tatsächlichen Methodenimplementierungen darstellen, die Sie aufrufen möchten.
Um diesen Ansatz zu verwenden, würden Sie die setAllComponents-Methode wie folgt aufrufen:
setAllComponents(this.getComponents(), new Command() { @Override public void execute(Component component) { // Code to execute for each component } });
Diese Technik ermöglicht Ihnen die Übergabe einer bestimmten Methodenimplementierung an die setAllComponents-Methode und bietet so den Anschein einer Referenzübergabefunktion.
Das obige ist der detaillierte Inhalt vonWie kann ich Pass-by-Reference für Methoden in Java simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!