浅析java中的回调机制

原创 2016年08月30日 11:13:54

        在做学校项目的时候做一个app,其中需要自定义回调函数,可自己对这方面可谓是一知半解,于是乎,赶紧到网上去查找相关的资料,以及其他人对回调函数的个人见解。花了一上午时间,终于明白了稍许,对于回调函数,我也有了一些自己的看法,在这里分享给大家(第一次写博客,有诸多问题再多难免,但我定会尽我所能,让大家有所收获。           所谓回调,在我现在看来,就是对于抽象类或者接口中的抽象方法进行重写,这时当要调用抽象类或者接口中的方法时,代码就会在遵循一定的机制的前提下,调用重写的方法。在查资料的过程中,我遇到了以下两种方式,待我一一道来。  

       一、子类继承抽象类或者接口,重写其中的方法,用子类对象对父类对象进行赋值,代码如下:

       

public interface MyCallInterface
{
    public void method();

}

public class Caller
{
    public MyCallInterface mc;

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

    public void call(){
       this.mc.method();
    }
}    

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();
    }
}

       二、使用匿名类对抽象类或者接口中的抽象方法进行重写,代码如下:

       

package com.listener;

/**
 * 点击监听器接口
 * @author jason0539
 *
 */
public interface MyOnClickListener {
    public void onClick();
}

package com.listener;

public class MyButton {
    private MyOnClickListener listener;
    
    /**
     * 设置具体点击监听器
     * @param listener 点击监听器实现类
     */
    public void setOnClickListener(MyOnClickListener listener) {
        this.listener = listener;
    }
    
    /**
     * 按钮被点击
     */
    public void doClick() {
        listener.onClick();
    }
}

package com.listener;

publicclass Client {
    public static void main(String[] args) {
        MyButton button =new MyButton();
        //注册监听器
        button.setOnClickListener(new MyOnClickListener() {

            @Override
            public void onClick() {
                System.out.println("按钮被点击了");
                
            }
            
        });
        //模拟用户点击
        button.doClick();
    }
}
    以上就是我对回调的总结啦吐舌头,希望对大家有所帮助~

    参考博文:http://blog.csdn.net/jason0539/article/details/10168899

                http://blog.csdn.net/fengyifei11228/article/details/5729445

理解Java回调机制

其实对于回调机制,在实际使用中还是经常用到的。但好笑的是,一直没能对所谓的回调的概念有一个很清晰的理解。 最近抽空看一些书的时候,老是时不时的提到回调的概念。那好吧,正好抽空来简单总结总结,加深一下印...
  • ghost_Programmer
  • ghost_Programmer
  • 2015年03月03日 16:07
  • 2985

浅析java回调机制

public class Test{   public static void main(String[] args){     FooBar foo=new FooBar();     foo.se...
  • feng_sundy
  • feng_sundy
  • 2007年02月07日 14:50
  • 9368

Java回调机制浅析

在Android开发中随处可见回调机制的使用,这里我将通过简单的例子以及Java代码对其进行说明。 1.什么是回调? 简单来说,如:A调用了B的方法,B会在合适的时候反过来调用A的方法,这样一种双向调...
  • ohooblueblue
  • ohooblueblue
  • 2016年03月24日 12:03
  • 210

“Ceph浅析”系列之五Ceph的工作原理及流程

本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍。如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对 RADOS进行。对于上层的部分,特别是RADOS GW...
  • qq_24916117
  • qq_24916117
  • 2015年12月30日 20:44
  • 672

浅谈Java回调机制

回调机制让我们代码运行更加高效,也让我们代码变得非常的简洁明了! 首先我们用个案例来一步一步带入,当我们需要解析一段JSON字符串时大部分我们的操作就是: public class ParseJSO...
  • caihongdao123
  • caihongdao123
  • 2016年06月13日 15:05
  • 7341

Java 回调机制解析(同步回调/异步回调)

回调:简单来说,就是我调用你的函数,你调用我的函数。正规一点的说法就是类A的a()函数调用类B的b()函数,当类B的b()函数的执行时又去调用类A里的函数。是一种双向的调用方式。一般情况下,回调分两种...
  • o15277012330o
  • o15277012330o
  • 2018年02月06日 17:53
  • 42

JAVA中的回调机制

JAVA中的回调通过接口,让被回调的类实现一个接口,并在需要激发回调类的时候把自己传送过去。 具体代码示例如下: package com.test; public class CallBack...
  • jsdtwry
  • jsdtwry
  • 2013年12月09日 21:09
  • 146

Java中的回调机制

Callback 回调机制Java中没有c/c++中函数指针的概念,而回调操作(callback)通过接口进行实现!作为对比,面向对象的小兄弟 —- C#通过委托(delegate)完成对于方法的调用...
  • u010865433
  • u010865433
  • 2015年10月29日 23:02
  • 313

java的接口回调机制详解

原文地址:http://www.open-open.com/lib/view/open1461482321288.html 序言 最近学习java,接触到了回调机制...
  • Ivory_wiki
  • Ivory_wiki
  • 2016年07月19日 16:02
  • 557

java中的回调机制

作为新手,不得不说学习是个艰难的过程。这几天一直在看关于回调机制方面的问题,经过几天的摸索,开始对android中的回调机制有了一点理解,下面做一个记录,有的是从别处借鉴过来的,有的是自己的一点理解,...
  • c_z_w
  • c_z_w
  • 2016年08月16日 00:12
  • 158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅析java中的回调机制
举报原因:
原因补充:

(最多只允许输入30个字)