日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2024/9/15 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java代碼的回調函數經常由框架或是系統定義,由程序開發人員填充。

它的最主要特點是即定義了調用的規范同時又非常的靈活。

回調函數有些類似于觀察者模式,它們的區別在于:觀察者模式返回的參數為Event對象,而回調函數則一般直接返回數據本身。

回調函數包含:調用者:如dbutils中的QueryRunner。

回調規范,即一個接口,如dbutils中的ResultSetHandler。其中可以定義N多個它的子類。

返回的數據:由用戶自己定義,或是系統已經定義。

1、簡單回調函數

package cn.itcast.test;

/**

* 回調函數的簡單寫法

*

*/

public class TT {

public static void main(String[] args) {

One a = new One();

a.abc("Hello",new A(){?? //這是沒有返回值的回調函數

public void abc(String ss) {

System.err.println("SSS:"+ss);

}

});

}

}

class One{?????????? //定義一個調用類

public void abc(String sql,A a){

a.abc(sql);

}

}

interface A{???????? //定義規范

public void abc(String ss);

}

2、擁有任意返回值的回調函數

1、以下是返回一個值的回調函數:

package cn.itcast.test;

/**

* 返回指定的泛型的回調函數

*

*/

public class CallBack {

public static void main(String[] args) {

B b = new B();

String str = b.getO(new IB(){

public String getObject(){

return "ddd";

}

});

System.err.println(str);

}

}

class B{??????????????????? //聲明一個類,此方法返回一個普通的值

public T getO(IB b){//聲明方法同時接收一個回調函數,注意泛型的使用

return b.getObject();

}

}

interface IB{? ????????? ??//將泛型定義到類上,直接在類上聲明泛型,這樣在聲明時就可以設置泛型了

public T getObject();

}

2、以下是返回List類型的回調函數:

package cn.itcast.test;

import java.util.ArrayList;

import java.util.List;

/**

* 返回list類型的回調函數

*

*/

public class CallBack2 {

public static void main(String[] args) {

C c = new C();?????? ?????????? //以下是測試代碼

List list =? c.getObjs(new IC(){

public String getObject(int row) {

return "Hello"+row;

}

});

System.err.println(">:"+list);

}

}

class C{?????????????????????????????? //定義被調用的類

public List getObjs(IC ic){? //在類上定義泛型多處使用

List list = new ArrayList(); //里面聲明一個List并多次調用回調函數的方法

for(int i=0;i<10;i++){

T t = ic.getObject(i);????????? //多次調用回調函數的方法

list.add(t);??????????????? //將從回調函數中返回對象放到List中

}

return list;

}

}

interface IC{??????????? //定義回調規范

public T getObject(int row);

}

總結

以上是生活随笔為你收集整理的java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。