美文网首页android学习笔记
通过接口实现回调:被调用方在接口被调用时也会调用对方的接口.

通过接口实现回调:被调用方在接口被调用时也会调用对方的接口.

作者: 鼾声鼾语 | 来源:发表于2020-05-05 09:41 被阅读0次

    https://www.cnblogs.com/java-xu/p/5416567.html

    我们常说的回调函数一般是通过接口实现的。被调用方在接口被调用时也会调用对方的接口.

    匿名内部类最常用的情况就是在回调当中的精彩表现。 回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口.

    public class Tools {   
           
        /**  
         * 测试函数使用时间,通过定义CallBack接口的execute方法  
         * @param callBack  
    */   
        public void testTime(CallBack callBack) {   
            long begin = System.currentTimeMillis();//测试起始时间   
            callBack.execute();//进行回调操作   
            long end = System.currentTimeMillis();//测试结束时间   
            System.out.println("[use time]:" + (end - begin));//打印使用时间   
        }   
           
        public static void main(String[] args) {   
            Tools tool = new Tools();   
            tool.testTime(new CallBack(){   
                //定义execute方法   
                public void execute(){   
                    //这里可以加放一个或多个要测试运行时间的方法   
                    TestObject.testMethod();
                }   
            });   
        }   
           
    }
    
    public interface CallBack {   
         //执行回调操作的方法   
         void execute();   
     }
    

    一、内部类的主要作用如下:

    1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

    2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

    3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。

    二、内部类可分为以下几种:

    成员内部类
    静态内部类
    方法内部类
    匿名内部类。
    三、1,定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
    2,外部类是不能直接使用内部类的成员和方法滴,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。
    3,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。HelloWorld.this.name

    四、Java回调

    回调用于层间协作,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍。
    其实回调和API非常接近,他们的共性都是跨层调用的函数。但区别是API是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的API,安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调,在需要调用时,只需引用这个函数指针和相关的参数指针。
    其实:回调就是该函数写在高层,低层通过一个函数指针保存这个函数,在某个事件的触发下,低层通过该函数指针调用高层那个函数。

    关于回调的总结:
    在Java中,通常就是编写另外一个类或类库的人规定一个接口,然后你来实现这个接口,然后把这个接口的一个对象作为参数传给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。

    相关文章

      网友评论

        本文标题:通过接口实现回调:被调用方在接口被调用时也会调用对方的接口.

        本文链接:https://www.haomeiwen.com/subject/bpbpghtx.html