Heim  >  Artikel  >  Java  >  Java-Callback-Funktion

Java-Callback-Funktion

WBOY
WBOYOriginal
2024-08-30 15:33:48380Durchsuche

Ein Rückruf ist ein Mechanismus, bei dem eine Referenz, die an eine Funktion übergeben wird, aufgerufen wird, wenn ein bestimmtes Ereignis in der ereignisgesteuerten Programmierung auftritt. Bei Programmiersprachen wie C, C++ wird der Rückruf durch Übergabe des Funktions1-Zeigers an Funktion2 erreicht. Da Java keine Zeiger unterstützt, kann der Callback nicht so implementiert werden. Hierzu werden Schnittstellen erstellt und übergeben, in denen auf den Speicherort einer Funktion verwiesen wird. In diesem Artikel werden weitere Details zur Rückruffunktion besprochen.

Syntax:

WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Unten finden Sie die Syntax der Callback-Funktion, wenn eine Schnittstelle mit einer Callback-Funktion vorhanden ist. Diese Methode wird später in der Klasse verwendet.

public interface interfaceA {
public String callA() ;
}

Wie funktioniert die Java-Callback-Funktion?

Sehen wir uns an, wie die Rückruffunktion auf einfache Weise funktioniert.

  • Erstellen Sie eine Schnittstelle mit nur einer Methode callA().
  • Erstellen Sie eine Methode func1 mit A als Methodenparameter.
  • Rufen Sie callA()in func1 auf.
  • Übergeben Sie eine neue Instanz von A und überschreiben Sie die Methode callA() zum Aufrufen von func1.
  • Verwenden Sie die Pfeilnotation als Alternative zum Schlüsselwort „news“, damit der Code übersichtlicher aussieht.

Beispiele zur Implementierung der Java-Callback-Funktion

Im Folgenden finden Sie einige Beispielprogramme für Java-Callback-Funktionen.

Beispiel #1

Java-Programm, das Text druckt, wenn auf die Schaltfläche geklickt wird.

Code:

//Create an interface clickeventhandlrinterfce for the callback method 
interface clickeventhandlrinterfce {	
	//call method clickhndlr
   public void clickhndlr();
}
//Create a callback handler ClickHandler that implements the clickeventhandlrinterfce interface
class ClickHandler implements clickeventhandlrinterfce {	
	//call method clickhndlr
   public void clickhndlr() {
	   
      System.out.println("Hey. . .  You have Clicked");
   } 
}
//Create  class for event generator
class Button {	
   public void onClick(clickeventhandlrinterfce chndlr)
   {
      chndlr.clickhndlr();
   }
}
public class CallBackFuncExample {	
   public static void main(String[] args) {	   
	  //create an object for btn2
      Button btn1 = new Button();      
      //create an object for ClickHandler
      ClickHandler chndlr = new ClickHandler();      
      //pass the object of  ClickHandler for performing the default operation
      btn1.onClick(chndlr);
	  //create an object for button2
      Button btn2 = new Button();      
      //For implementing own operation, pass the interface     
      btn2.onClick(new clickeventhandlrinterfce() {   	  
         @Override         
         //method clickhndlr that displays output on clicking
         public void clickhndlr() {       	 
            System.out.println("Hey. . .  You have clicked a button");
         }
      });
   } }

Ausgabe:

Java-Callback-Funktion

Erläuterungen: Erstellen Sie zunächst ein Objekt für button1, ClickHandler und button2. Übergeben Sie dann das Objekt des Click-Handlers zum Ausführen der Standardoperation. Anschließend übergeben Sie zur Implementierung einer eigenen Operation die Schnittstelle mit einer Methode clickhndlr, die beim Klicken eine Ausgabe anzeigt. Sobald dies alles erledigt ist, erstellen Sie eine Schnittstelle clickeventhandlrinterfce für die Rückrufmethode. Erstellen Sie dann einen Callback-Handler ClickHandler, der die Schnittstelle clickeventhandlrinterfce implementiert und schließlich eine Klasse für den Ereignisgenerator erstellt. Beim Ausführen des Codes werden zwei Zeilen gedruckt, wie oben in der Beispielausgabe gezeigt.

Beispiel #2

Einfaches Java-Programm, das die Rückruffunktion implementiert.

Code:

//class starts here
public class CallBackFuncExample {	
	//main method
    public static void main(String args[]) {
      
    //Function that passes interface name as parameter
      func1(new interfaceA()
      {
    	  //method callA
          public String callA() 
          {
              return "HI, I AM FIRST CALL ";
            }
      } ) ;
      
      // function that passes interface name as parameter
       func1(new interfaceA()
       {
     	  //method callA

        public String callA() {
          return "HI, I AM SECOND CALL";
        }
        } ) ;
        func1(() -> 
        {
                return "HI, I AM THIRD CALL";
        });
    }
    public static void func1(interfaceA intr)
    {
        System.out.println("Method called here: " + intr.callA());
    }  
    public interface interfaceA {
        public String callA();
    }
}

Ausgabe:

Java-Callback-Funktion

Erläuterungen: In diesem Programm wird eine Schnittstelle mit nur einer Methode callA() erstellt. Anschließend wird eine weitere Methode, func1, mit interfaceA als Methodenparameter erstellt. Rufen Sie danach interfaceA.callA() in func1 auf. Sobald diese Schritte abgeschlossen sind, übergeben Sie eine neue Instanz von interfaceA und überschreiben Sie die Methode callA() zum Aufrufen von func1. Hier wird alternativ zum Schlüsselwort new eine Pfeilnotation verwendet, damit der Code übersichtlicher aussieht. Beim Ausführen des Codes ist ersichtlich, dass drei Methoden aufgerufen werden und die Ergebnisse zurückgegeben werden, wie in der Abbildung oben dargestellt.

Beispiel #3

Java-Programm, das eine Rückruffunktion implementiert und eine Zeichenfolge ausgibt.

Code:

//create an interface
interface textprint {
  void samplefunc(String txt);
}
//create a class that implements the interface
class classA implements textprint {
//create a method samplefunc that takes a text as a parameter 
  public void samplefunc(String txt) {
	  
    System.out.println("The text is : " + txt);
  }
}
//main class
public class CallBackFuncExample {	
  // Reference to the textprint Interface
  textprint txtrcvr;    
  CallBackFuncExample(textprint r) {
    txtrcvr = r ;
  }  
  public void samplefunc2(String s)
  {
    txtrcvr.samplefunc(s);
  }  
  //main method
  public static void main(String[] args) {	  
// Create a object of the classA that implements the interface
    classA objA = new classA();     
    CallBackFuncExample obj2 = new CallBackFuncExample(objA);    
    obj2.samplefunc2("Program runs successfully");
  }
}

Ausgabe:

Java-Callback-Funktion

Erläuterungen: Erstellen Sie in diesem Programm eine Schnittstelle und eine Klasse, die die Schnittstelle implementiert. Erstellen Sie innerhalb dieser Klasse eine Methode „samplefunc“, die einen Text als Parameter akzeptiert. Mithilfe des erstellten Klassenobjekts wird die Methode aufgerufen und die Zeichenfolge wird beim Ausführen des Codes ausgegeben.

Beispiel #4

Java-Programm, das zwei Zahlen basierend auf der Klasse hinzufügt.

Code:

import java.util.Scanner; 
//create an interface
interface interfaceA { 	
	double func1(); 
} 
// class A that implements the interface
class A implements interfaceA { 	
	public double func1() 
	{ 
		return 2500.0; 
	} 
} 
//class B that implements the interface
class B implements interfaceA { 
	
	public double func1() 
	{ 
		return 1500.0; 
	} 
} 
class CallBackFuncExample  { 
	//MAIN METHOD
	public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException 
	{ 
		//scanner object
		Scanner sc = new Scanner(System.in); 
		
		System.out.println("Enter the class name"); 
		String classnm = sc.next();
		// object is then stored in cl
		Class cl = Class.forName(classnm); 
		interfaceA intr = (interfaceA)cl.newInstance(); 
		func2(intr); 
	} 
	static void func2(interfaceA intrfce) 
	{ 
		double a = 2000.0; 
		double b = intrfce.func1(); 
		double sum = b + a; 
		System.out.println("Total amount is :" + sum); 
	} 
}

Ausgabe:

Java-Callback-Funktion

Erläuterungen: In diesem Programm wird die Schnittstelle erstellt und die Klassenmethoden aufgerufen. Hier wird mithilfe der Callback-Funktion basierend auf der Benutzereingabe eine Summe zweier Beträge ermittelt.

Das obige ist der detaillierte Inhalt vonJava-Callback-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Rekursion in JavaNächster Artikel:Rekursion in Java