導航:首頁 > 編程語言 > java實現回調

java實現回調

發布時間:2022-08-15 22:07:21

『壹』 java回調函數

應該是有一個函數式介面Phone,它有唯一一個方法call(),消費者類實現這個介面Phone,商店老闆類的對象中保存一個List<Phone>,當中存放每個來買過熱狗的實現了Phone方法的對象;每當一個熱狗做好時,取出列表中第一個對象,調用它的call()方法通知它熱狗已做好。

『貳』 JAVA裡面方法回調是什麼意思

註明:此答案為轉載,出處:網路知道

====================================

比如你寫了兩個類A和B,並且各生成一個對應的實例a 和b ,在a 中有一個方法fa( 此方法只負責生成兩個隨機數)要調用b中的一個方法fb(此方法對兩個數進行求各) 來進行求和,fb求得結果後要調用a的另一個方法ffa(此方法用於顯示求得的結果),這時ffa就叫作回調函數,(反回來調用一下的意思)
為什麼要這么麻煩呢,如果fb直接返回結果不好嗎,試想如果fb執行時間較長,那麼fa就會一直等結果而導致fa不往下執行了,此時如果用回調這個功能實現,由於 回調函數一般是由系統非同步調用的,方法fa調用fb後就不用等而直接往下執行,比如可以再生成兩隨機數給fb,fb會依次得到結果後通過回調機制來調用ffa顯示出來,其實就是為實現生成隨機數和計算隨機數的非同步執行。好象fa和fb是兩個獨立執行的線程,提高程序效率。

非同步調用是回調函數的一種典型應用

正是因為回調函數大多數情況下(98%的比例)最常用於非同步的多線程程序中,所以大家經常認為只要用到回調函數了則程序就是非同步的.這個理解不對

fa ,fb方法分別運行於兩個線程中才能實現非同步工作,因為回調函數只是實現非同步調用的手段, 線程間通信(比如要進行線程間同步)時程序員常通過在一個線程中引發事件來通知另一線程響應,而引發事件其實就是一種調用回調函數的過程.由此可以理解VB的事件編程模式下我們寫的那些按鈕點擊事件中的代碼其實就是回調函數的實現代碼

『叄』 java中的介面的回調

介面回調是指:可以把使用某一介面的類創建的對象的引用賦給該介面聲明的介面變數,那麼該介面變數就可以調用被類實現的介面的方法。實際上,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法,這一過程稱為對象功能的介面回調。看下面示例。

interface People{
void peopleList();
}
class Student implements People{
public void peopleList(){
System.out.println("I』m a student.");
}
}
class Teacher implements People{
public void peopleList(){
System.out.println("I』m a teacher.");
}
}
public class Example{
public static void main(String args[]){
People a; //聲明介面變數
a=new Student(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
a=new Teacher(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
}
}
結果:
I』m a student.
I』m a teacher.

『肆』 java怎麼實現c的回調函數

以我的理解恐怕這個CALLBACK要讓你失望了~~JAVA的操作機制是隱藏了指針和引用,地址的操作在JAVA裡面是不允許的~~所以JNI介面中定義的方法,不能使用函數指針作為形參,所以這個回調函數在JAVA的CLASS中是不能調用的;
你換個思考角度用TCP/UDP程序吧,JAVA的CLASS調用的結果通過流傳遞給C/C++的Server。。。貌似我只能想到這樣了。
望採納!!

『伍』 Java中什麼是介面回調

可以把使用某一介面的類創建的對象的引用賦給該介面聲明的介面變數,那麼該介面變數就可以調用被類實現的介面的方法。

實際上,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法,這一過程稱為對象功能的介面回調。

Java語言特點

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。

例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特徵,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。

『陸』 給個Java介面回調的例子

介面回調是指:可以把使用某一介面的類創建的對象的引用賦給該介面聲明的介面變數,那麼該介面變數就可以調用被類實現的介面的方法。實際上,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法,這一過程稱為對象功能的介面回調。
示例代碼:
interface People{ //介面
void peopleList();
}
class Student implements People{ //介面實現類
public void peopleList(){ //實現介面方法
System.out.println("I'm a student.");
}
}
class Teacher implements People{ //介面實現類
public void peopleList(){ //實現介面方法
System.out.println("I'm a teacher.");
}
}
public class Example{
public static void main(String args[]){
People a; //聲明介面變數
a=new Student(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
a=new Teacher(); //實例化,介面變數中存放對象的引用
a.peopleList(); //介面回調
}
}
輸出結果:
I』m a student.
I』m a teacher.

『柒』 JAVA如何實現非同步回調

FutureTask<String> futureTask=new FutureTask<>(new Callable<String>() {
@Override
public String call() throws Exception {
// TODO Auto-generated method stub
return "回調完成";
}
});
try {
String str=futureTask.get();
if(str.equals("回調完成"))
System.out.println("非同步任務完成!");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }

『捌』 java中怎樣定義回調函數

程序員A寫了一段程序(程序a),其中預留有回調函數介面,並封裝好了該程序。程序員B要讓a調用自己的程序b中的一個方法,於是,他通過a中的介面回調自己b中的方法。目的達到。在C/C++中,要用回調函數,被掉函數需要告訴調用者自己的指針地址,但在JAVA中沒有指針,怎麼辦?我們可以通過介面(interface)來實現定義回調函數。
假設我是程序員A,以下是我的程序a:
[java] view plainprint?
public class Caller
{
public MyCallInterface mc;

public void setCallfuc(MyCallInterface mc)
{
this.mc= mc;
}

public void call(){
this.mc.method();
}
}
還需要定義一個介面,以便程序員B根據我的定義編寫程序實現介面。

public interface MyCallInterface
{
public void method();

}
於是,程序員B只需要實現這個介面就能達到回調的目的了:
public class B implements MyCallInterface
{
public void method()
{
System.out.println("回調");
}

public static void main(String args[])
{
Caller call = new Caller();
call.setCallfuc(new B());
call.call();
}
}

『玖』 java 如何寫回調方法

publicclassCaller
{
publicMyCallInterfacemc;

publicvoidsetCallfuc(MyCallInterfacemc)
{
this.mc=mc;
}

publicvoidcall(){
this.mc.method();
}
}

介面


{
publicvoidmethod();

}

測試


{
publicvoidmethod()
{
System.out.println("回調");
}
publicstaticvoidmain(Stringargs[])
{
Callercall=newCaller();
call.setCallfuc(newB());
call.call();
}
}
閱讀全文

與java實現回調相關的資料

熱點內容
解壓新奇特視頻 瀏覽:702
圖書信息管理系統java 瀏覽:548
各種直線命令詳解 瀏覽:859
程序員淚奔 瀏覽:143
素材怎麼上傳到伺服器 瀏覽:513
android百度離線地圖開發 瀏覽:187
web可視化編程軟體 瀏覽:288
java筆試編程題 瀏覽:742
win11什麼時候可以裝安卓 瀏覽:560
java不寫this 瀏覽:999
雲點播電影網php源碼 瀏覽:95
pythonclass使用方法 瀏覽:226
移動加密軟體去哪下載 瀏覽:294
php彈出alert 瀏覽:209
吉林文檔課件加密費用 瀏覽:136
感測器pdf下載 瀏覽:289
隨車拍app綁定什麼設備 瀏覽:898
方維團購系統源碼 瀏覽:993
linux反彈shell 瀏覽:159
列印機介面加密狗還能用嗎 瀏覽:301