1. 程式人生 > >Java 回撥函式callback 用法

Java 回撥函式callback 用法

1.定義回撥函式介面

裡面包含一個方法

public interface CallBack {
	
	public void execute();

}

2.定義回撥函式的實現 

public class BookCallBack implements CallBack{

	private String bookName;  	
	 private String author;
	 
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}

	@Override
	public void execute() {
		this.bookName = "The little prince";
		this.author = "Antoine";
 		System.out.println("---------callback實現類 bookName=="+ this.bookName +"      author==="+this.author);
	}

}

3.定義業務處理類

業務處理類裡的方法形參傳入CallBack介面

業務處理類裡的方法內容包括:處理業務和執行回撥函式

//業務處理類
public class TestBookCallBack {
	
	public void test(CallBack callBack){
		
		//1.處理業務
		System.out.println("---------業務處理類 TestBookCallBack---------");
		//2.執行回撥函式
		callBack.execute(); 
	}

}

4.1 定義主函式-使用匿名內部類 實現callback

import org.junit.Test;

public class Main {

	@Test
	public void main() {

		TestBookCallBack testBookCallBack = new TestBookCallBack();
		testBookCallBack.test(new CallBack() {
			@Override
			public void execute() {
				System.out.println("-------------------Anonymous Inner Class-------------------");
			}
		});
	}

}

 執行結果為

---------業務處理類 TestBookCallBack---------
---------Anonymous Inner Class--------- 

4.2定義主函式,使用callback的實現類 實現callback

import org.junit.Test;

public class Main {
 
	@Test
	public void main() {

		TestBookCallBack testBookCallBack = new TestBookCallBack();
		BookCallBack bookCallBack = new BookCallBack();
		testBookCallBack.test(bookCallBack);
		System.out.println("---------main---------在主函式中 獲取callback實現類裡定義的變數值----------" + bookCallBack.getBookName()+"----"+ bookCallBack.getAuthor());

	}
 
}

執行結果

---------業務處理類 TestBookCallBack---------
---------callback實現類 bookName==The little prince      author===Antoine
---------main---------在主函式中 獲取callback實現類裡定義的變數值----------The little prince----Antoine


相關推薦

Java 函式callback 用法

1.定義回撥函式介面裡面包含一個方法public interface CallBack { public void execute(); }2.定義回撥函式的實現 public class Bo

js 寫自定義函式callback

第一種形式: /* * 構造回撥函式 * @param:p1 * @param:callback 回撥函式 */ function testfn(p1 ,callback) { console.log('呼叫第一次函式-->'+p1); if(callback){ cal

函式用法

#include <stdio.h> void Test_Demo( void ( *FUNC )( int a,int b),int x,int y ){ //int a = 1; //int b = 5; FUNC(x,y);} void func(int x,int y){ prin

java函式詳解

宣告:部落格參考於https://www.cnblogs.com/yangmin86/p/7090882.html,謝謝哥們 回撥函式:是指在A類執行程式碼時,呼叫了B類中的方法,但B類中的方法執行了A類中的方法。 example: 1、Boss.java(Boss類中執行程式碼,呼叫了Emp類的doP

函式callback function的機制及使用舉例

如果把函式指標傳遞給另一個函式(呼叫者),當呼叫者執行時,函式指標所指的函式也被執行。被呼叫的函式就是回撥函式。 回撥函式實現的機制是 1、定義一個回撥函式;  2、提供函式實現的一方在初始化的時候,通過註冊函式 向呼叫者(管理單元/排程函式)註冊回撥函式的函式指標。  3、當特定的

js中的函式callback

前言其實我一直很困惑關於js 中的callback,困惑的原因是,學習中這塊看的資料少,但是平時又經常見,偶爾複製一下前人程式碼,功能實現了也就不再去追其原由,這麼著,這個callback的概念就越來越混亂,因為你總感覺它是你Ajax請求後呼叫的那個函式,又感覺它是你某一個函式中的形

函式callback&&callback()

如果存在回撥函式就執行! 這是利用了 JS &&符號的一個小技巧 && 符號在前面為假時就不會執行後面的語句了 所以這個就相當於 if(callback){ callback(); }   來源:https://blog.csdn.net

java 函式詳解

在C或者C++中回撥函式的定義: 程式在呼叫一個函式時,將自己的函式的地址作為引數傳遞給程式呼叫的函式時(那麼這個自己的函式稱回撥函式) Java中沒有指標,不能傳遞方法的地址,一般採用介面回撥實現:把實現某一介面的類建立的物件的引用賦給該介面宣告的介面變

Ajax非同步函式(callback)

ajax請求確實是非同步的,不過這請求是由瀏覽器新開一個執行緒請求,當請求的狀態變更時,如果先前已設定回撥,這非同步執行緒就產生狀態變更事件放到 JavaScript引擎的處理佇列中等待處理。見:htt

Java 函式(傳統方法和lambda方法)-一個例子秒懂

背景: 想寫一個工具類 Tool.java ,其中方法 public void readOneLine() 負責一行一行地讀檔案,然後根據不同的業務,對每一行進行不同處理。最後輸出到檔案 out.txt 那麼問題來了,根據不同的業務,進行不同處理 怎麼實現?

[置頂] java 函式學習(監聽器模式)

回撥就是把函式指標做為引數傳入 如函式A 做為引數傳入函式B 由B函式決定何時 何地 呼叫函式A 經典形象的說明了回撥函式(javascript中經常這麼用) function A(){ } function B(A) { ... ... A(); } 但是在JAVA中不允許將方法作為引

c++函式 callback

                                                                      C++中實現回撥機制的幾種方式(1)Callback方式 Callback的本質是設定一個函式指標進去,然後在需要需要觸發某個事件時

java函式

兩種回撥 1、同一程序中,被回撥方法所屬類需要在呼叫‘呼叫回撥方法’的類的方法時將自己傳過去 public class A{      public void methodA(){      methodB(this)     }     public void

函式用法(類之間的通訊)

// ConsoleApplication3.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #inclu

JAVA機制(CallBack)詳解

轉載地址:http://www.cnblogs.com/heshuchao/p/5376298.html 序言 最近學習java,接觸到了回撥機制(CallBack)。初識時感覺比較混亂,而且在網上搜索到的相關的講解,要麼一言帶過,要麼說的比較單純的像是給CallBa

C++11中function物件作函式用法

Thread中的函式回撥方法,儲存著以後使用。 #ifndef THREAD_H_ #define THREAD_H_ #include <boost/noncopyable.hpp>

js 非同步函式用法

function gettime(){         var time;         $.ajax({           url:"?action=gettime",           async:false,           type:"GET",      

180205 Keras函式Callback舉例

呼叫LambdaCallback 呼叫History 自定義Callback類+呼叫tensorboard的程式結果 runfile('F:/180204/NoisyLabelCode/noisy_labels27Code/mnist-mlp.py

JAVA函式的一點理解

          老王,男,住隔壁,包工頭一名---OLDWang,靠接工程專案過日子,近日老王手頭有點拮据,靠以前的狐朋狗友接到一項政府工程(GovProjectByWang)----鋪路(BuildRoad)。有工程了,老王擼起袖子加油幹起來了,可是老王擅長吃吃喝喝,

Ajax的函式(callback)

Ajax中的回撥函式(利用PHP+JS實現) 很多和我一樣的初學者,總是搞不懂什麼是回撥函式。我經過了幾天的學習將自己的理解記錄在這裡。 一、為什麼使用回撥函式? 首先我們應該明白我們為什麼要用回撥函式?我們用它能夠解決什麼樣的問題。下邊看一個例子。 (1)在以上函式d