全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java编程接口回调一般用法代码解析

接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

Java接口回调一般用法:实现接口实际上和继承抽象类类似,只不过继承是在类的层面上操作,接口是在方法和常量集合的层面上操作,接口比抽象类更抽象、更简洁。可以把实现接口看成继承特定的一个或多个方法以及一些常量,关于接口的具体规则这里不赘述。

为什么要使用接口和抽象类?因为从很多角度讲,这样做符合面向对象的设计思想,比如开闭原则等。

从实际开发的角度讲,Java不支持多继承,为了弥补这一点,接口的存在就极为重要,和继承不同,一个类可以实现多个接口。

接口的一大作用是实现回调,回调分同步回调和异步回调,区别是异步回调使用了多线程技术,当回调中有耗时操作时,就需要使用异步回调。

以下全部以异步回调为例。以下以java写法为例,android同理。

1、一般用法

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

public class Main implements InterfaceExample{
  public static void main(String[] args) {
    System.out.println("------接口使用测试--------");
    InterfaceTest test = new InterfaceTest();
    //调用InterfaceTest的handleThings方法,并传递Main的实例
    test.handleThings(new Main());
    System.out.println("------异步回调测试--------");
  }
  @Override  //重写接口方法
  public void sendMessage(String string) {
    System.out.println("接口回调成功,利用 " + string + " 做一些事");
  }
}
 
//接口也可以写在一个独立的.java文件里
interface InterfaceExample {
  void sendMessage(String string);
}

下面新建发起回调的类InterfaceTest

public class InterfaceTest {
  //注意这里Main实例向上转型,接口变量引用了Main实例
  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();
        }
        //回调接口方法
        example.sendMessage("接口传的参数");
      }
    }).start();
  }
}

最后运行输出:

------接口使用测试--------
------异步回调测试--------
-----做一些事------
接口回调成功,利用 接口传的参数 做一些事

其中异步的处理也可以在Main中调用handleThings时进行。

2、结合匿名内部类实现接口回调

第二种方法只需要在第一种的基础上修改Main类就可以

public class Main {
  public static void main(String[] args) {
    System.out.println("------接口使用测试--------");
    InterfaceTest test = new InterfaceTest();
    //调用InterfaceTest的handleThings方法,并使用实现了InterfaceExample接口的匿名内部类
    //在该匿名内部类中重写接口方法
    test.handleThings(new InterfaceExample() {
      @Override  //重写接口方法
      public void sendMessage(String string) {
        System.out.println("接口回调成功,利用 " + string + " 做一些事");
      }
    });
    System.out.println("------异步回调测试--------");
  }
}
interface InterfaceExample {
  void sendMessage(String string);
}

可以看到,采用匿名内部类的方式可以简化代码,使程序结构更清晰。所以这种用法很常见,比如android系统提供的view的点击事件就是采用这种形式进行回调。

输出是一样的:

------接口使用测试--------
------异步回调测试--------
-----做一些事------
接口回调成功,利用 接口传的参数 做一些事。

        本文关于Java编程接口回调一般用法的介绍就到这里,希望对大家有所帮助。


# java  # 接口回调  # 接口回调用法  # java 接口回调实例详解  # Java按时间梯度实现异步回调接口的方法  # Java中的接口回调实例  # 深入了解Java接口回调机制  # 基于Java接口回调详解  # Java接口回调的本质详解  # java实现异步线程  # 回调接口方式  # Java接口的回调机制的实现  # 回调  # 重写  # 是在  # 多个  # 为例  # 抽象类  # 就可以  # 角度讲  # 这一  # 基础上  # 是指  # 中有  # 只需  # 要在  # 一大  # 这样做  # 层面上  # 可以看到  # 不支持  # 可以实现 


相关文章: 如何快速搭建高效服务器建站系统?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  广东企业建站网站优化与SEO营销核心策略指南  深入理解Android中的xmlns:tools属性  网站设计制作公司地址,网站建设比较好的公司都有哪些?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站之星后台密码遗忘或太弱?如何重置与强化?  如何选择可靠的免备案建站服务器?  建站主机数据库如何配置才能提升网站性能?  如何在局域网内绑定自建网站域名?  中山网站推广排名,中山信息港登录入口?  平台云上自助建站如何快速打造专业网站?  建站VPS选购需注意哪些关键参数?  视频网站制作教程,怎么样制作优酷网的小视频?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  如何高效完成独享虚拟主机建站?  如何零基础在云服务器搭建WordPress站点?  建站之星如何快速更换网站模板?  宝塔建站无法访问?如何排查配置与端口问题?  网站制作壁纸教程视频,电脑壁纸网站?  如何快速上传自定义模板至建站之星?  如何使用Golang安装API文档生成工具_快速生成接口文档  建站之星如何助力企业快速打造五合一网站?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  做企业网站制作流程,企业网站制作基本流程有哪些?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  公司网站设计制作厂家,怎么创建自己的一个网站?  黑客入侵网站服务器的常见手法有哪些?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何快速搭建虚拟主机网站?新手必看指南  如何通过虚拟机搭建网站?详细步骤解析  南京网站制作费用,南京远驱官方网站?  建站之星好吗?新手能否轻松上手建站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何用PHP工具快速搭建高效网站?  建站之星免费版是否永久可用?  建站之星ASP如何实现CMS高效搭建与安全管理?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何挑选最适合建站的高性能VPS主机?  Python lxml的etree和ElementTree有什么区别  南宁网站建设制作定制,南宁网站建设可以定制吗?  建站之星如何一键生成手机站?  建站之星如何防范黑客攻击与数据泄露?  宁波自助建站系统如何快速打造专业企业网站?  C#如何序列化对象为XML XmlSerializer用法  如何通过老薛主机一键快速建站?  如何在建站之星绑定自定义域名?  建站主机服务器选购指南:轻量应用与VPS配置解析  *服务器网站为何频现安全漏洞? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。