成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java項(xiàng)目中進(jìn)行接口回調(diào)方法有哪些

Java項(xiàng)目中進(jìn)行接口回調(diào)方法有哪些?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站是專業(yè)的都勻網(wǎng)站建設(shè)公司,都勻接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行都勻網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

接口回調(diào)是指:可以把使用某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量,那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口的方法。實(shí)際上,當(dāng)接口變量調(diào)用被類實(shí)現(xiàn)的接口中的方法時(shí),就是通知相應(yīng)的對象調(diào)用接口的方法,這一過程稱為對象功能的接口回調(diào)。

Java接口回調(diào)一般用法:實(shí)現(xiàn)接口實(shí)際上和繼承抽象類類似,只不過繼承是在類的層面上操作,接口是在方法和常量集合的層面上操作,接口比抽象類更抽象、更簡潔??梢园褜?shí)現(xiàn)接口看成繼承特定的一個(gè)或多個(gè)方法以及一些常量,關(guān)于接口的具體規(guī)則這里不贅述。

為什么要使用接口和抽象類?因?yàn)閺暮芏嘟嵌戎v,這樣做符合面向?qū)ο蟮脑O(shè)計(jì)思想,比如開閉原則等。

從實(shí)際開發(fā)的角度講,Java不支持多繼承,為了彌補(bǔ)這一點(diǎn),接口的存在就極為重要,和繼承不同,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

接口的一大作用是實(shí)現(xiàn)回調(diào),回調(diào)分同步回調(diào)和異步回調(diào),區(qū)別是異步回調(diào)使用了多線程技術(shù),當(dāng)回調(diào)中有耗時(shí)操作時(shí),就需要使用異步回調(diào)。

以下全部以異步回調(diào)為例。以下以java寫法為例,android同理。

1、一般用法

新建入口類 Main,并新建接口 InterfaceExample

public class Main implements InterfaceExample{
  public static void main(String[] args) {
    System.out.println("------接口使用測試--------");
    InterfaceTest test = new InterfaceTest();
    //調(diào)用InterfaceTest的handleThings方法,并傳遞Main的實(shí)例
    test.handleThings(new Main());
    System.out.println("------異步回調(diào)測試--------");
  }
  @Override  //重寫接口方法
  public void sendMessage(String string) {
    System.out.println("接口回調(diào)成功,利用 " + string + " 做一些事");
  }
}
 
//接口也可以寫在一個(gè)獨(dú)立的.java文件里
interface InterfaceExample {
  void sendMessage(String string);
}

下面新建發(fā)起回調(diào)的類InterfaceTest

public class InterfaceTest {
  //注意這里Main實(shí)例向上轉(zhuǎn)型,接口變量引用了Main實(shí)例
  public void handleThings(InterfaceExample example) {
    new Thread(new Runnable() {
      @Override
      public void run() {
        System.out.println("-----做一些事------");
        try {
          Thread.sleep(3000);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        //回調(diào)接口方法
        example.sendMessage("接口傳的參數(shù)");
      }
    }).start();
  }
}

最后運(yùn)行輸出:

------接口使用測試--------
------異步回調(diào)測試--------
-----做一些事------
接口回調(diào)成功,利用 接口傳的參數(shù) 做一些事

其中異步的處理也可以在Main中調(diào)用handleThings時(shí)進(jìn)行。

2、結(jié)合匿名內(nèi)部類實(shí)現(xiàn)接口回調(diào)

第二種方法只需要在第一種的基礎(chǔ)上修改Main類就可以

public class Main {
  public static void main(String[] args) {
    System.out.println("------接口使用測試--------");
    InterfaceTest test = new InterfaceTest();
    //調(diào)用InterfaceTest的handleThings方法,并使用實(shí)現(xiàn)了InterfaceExample接口的匿名內(nèi)部類
    //在該匿名內(nèi)部類中重寫接口方法
    test.handleThings(new InterfaceExample() {
      @Override  //重寫接口方法
      public void sendMessage(String string) {
        System.out.println("接口回調(diào)成功,利用 " + string + " 做一些事");
      }
    });
    System.out.println("------異步回調(diào)測試--------");
  }
}
interface InterfaceExample {
  void sendMessage(String string);
}

可以看到,采用匿名內(nèi)部類的方式可以簡化代碼,使程序結(jié)構(gòu)更清晰。所以這種用法很常見,比如android系統(tǒng)提供的view的點(diǎn)擊事件就是采用這種形式進(jìn)行回調(diào)。

輸出是一樣的:

------接口使用測試--------
------異步回調(diào)測試--------
-----做一些事------
接口回調(diào)成功,利用 接口傳的參數(shù) 做一些事。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

分享題目:Java項(xiàng)目中進(jìn)行接口回調(diào)方法有哪些
轉(zhuǎn)載注明:http://jinyejixie.com/article44/ppeoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、用戶體驗(yàn)商城網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、建站公司

廣告

聲明:本網(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)

h5響應(yīng)式網(wǎng)站建設(shè)
凉城县| 鹿泉市| 汉中市| 繁昌县| 兖州市| 清水县| 巫山县| 三原县| 台南县| 阜康市| 德保县| 承德市| 灵川县| 灵丘县| 湘西| 南宁市| 莱州市| 丘北县| 海城市| 白河县| 怀来县| 平潭县| 西宁市| 定州市| 高安市| 枣庄市| 九寨沟县| 秦皇岛市| 肥东县| 五河县| 双江| 延庆县| 红桥区| 斗六市| 揭阳市| 寻乌县| 宝兴县| 新安县| 阿拉善左旗| 长岛县| 葵青区|