你好,我寫了個(gè)很簡單的代碼,你一看就明白了
創(chuàng)新互聯(lián)-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、德陽服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),聯(lián)系熱線:18980820575
public class A {
int value = 1001;
public A() {// A的構(gòu)造函數(shù),執(zhí)行B的exec()方法,里面又帶有對A的getValue()方法調(diào)用,這個(gè)就叫做回調(diào)
B b = new B(this);
b.exec();
}
public int getValue() {
return value;
}
public static void main(String[] args) {
new A();//構(gòu)造函數(shù)里已經(jīng)發(fā)生了回調(diào),所以不需要更多的代碼
}
}
class B {
private A a;
public B(A a) {
this.a = a;
}
public void exec() {
System.out.println(a.getValue());// 這里調(diào)用了a的getValue()方法
}
}
簡單的你會(huì)寫,那就好辦,直接上代碼
public?interface?TestAPI?extends?StdCallLibrary?{
interface?LoginReply?extends?StdCallCallback?{
/**
*?登錄回調(diào)
*/
void?invoke(String?userId,?long?retCode,?String?retMsg);
}
/**
*?注冊一個(gè)登錄回調(diào)方法.此方法是dll提供的
*/
void?RegisterLoginReply(LoginReply?loginReply);
}
/**
*?實(shí)現(xiàn)登錄回調(diào)方法
*/
private?class?LoginReplyCallBack?implements?TestAPI.LoginReply?{
@Override
public?void?invoke(String?userId,?long?retCode,?String?retMsg)?{
log.info("登錄回調(diào)方法:{},{},{}",?userId,?retCode,?retMsg);
}
}
//?設(shè)置登錄回調(diào)
api.RegisterLoginReply(loginReplyCallBack);
這不是回調(diào)函數(shù);
是一個(gè)匿名實(shí)現(xiàn)類;
報(bào)錯(cuò)的話可能是接口里面的方法沒有實(shí)現(xiàn);
比如:
new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
就必須實(shí)現(xiàn)Runnable里面的方法~
希望對你有所幫助~
網(wǎng)站欄目:回調(diào)函數(shù)簡單代碼java 啥叫回調(diào)函數(shù)
瀏覽路徑:http://jinyejixie.com/article2/dodheic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、品牌網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站營銷、網(wǎng)站改版、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)