美文网首页
Java中回调机制的使用

Java中回调机制的使用

作者: 江南Ryan | 来源:发表于2018-11-14 21:16 被阅读0次

1,场景:模拟教师给学生布置作业,学生完成后将结果回告教师
2,初始化学生类:

public class Student {

    /*
    回调实际上是调用方Teacher将自身的实例teacher(Teacher.this)传递给被调用方Student对应的方法
    doHomeWork(WcsCallBack wcsCallBack, String task)内。
     */
    public void doHomeWork(WcsCallBack wcsCallBack, String task) throws InterruptedException {

        System.out.println("接到老师的作业:"+task);
        System.out.println("学生正在做作业");
        Thread.sleep(1000);
        System.out.println("作业已经完成");
        String result="【Today's homeWorker is so easy】";

        wcsCallBack.complete("notify Teacher the result of Today's homeWorker"+result);

    }

}

3,设置回调方法。(此方法被Student中使用)

public interface WcsCallBack {

    public void complete(String result);
}

4,初始化Teacher类

public class Teacher implements WcsCallBack {

    private Student student;

    public Teacher(Student student) {
        this.student = student;
    }


    /*
    下发布置作业
     */
    public void commandMethod(String homeWorker ){
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("即将布置作业...");
                try {
                    /*
                    doHomeWork(WcsCallBack wcsCallBack, String task)。
                    Teacher类实现了WcsCallBack接口,所以可以作为WcsCallBack实例传入。
                    /*
                    回调实际上是调用方Teacher将自身的实例teacher(Teacher.this)传递给被调用方Student对应的方法
                    doHomeWork(WcsCallBack wcsCallBack, String task)内。
                     */

                    student.doHomeWork(Teacher.this,homeWorker);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        }).start();

    }



    @Override
    public void complete(String result) {
        System.out.println("收到学生对于今天作业的反馈:"+result);
    }

5,写测试类:

public class TestClass {

    public static void main(String[] args){

        Student stu = new Student();
        Teacher teacher = new Teacher(stu);
        System.out.println("进入测试程序");
        String homeWorker="【万历十五年朗读第三章】";
        teacher.commandMethod(homeWorker);

    }
}

6,结果输出:

进入测试程序
即将布置作业...
接到老师的作业:【万历十五年朗读第三章】
学生正在做作业
作业已经完成
收到学生对于今天作业的反馈:notify Teacher the result of Today's homeWorker【Today's homeWorker is so easy】

相关文章

  • Java基础9:解读Java回调机制

    本文主要介绍了Java中的回调机制,以及Java多线程中类似回调的机制。 具体代码在我的GitHub中可以找到 h...

  • Java中回调机制的使用

    1,场景:模拟教师给学生布置作业,学生完成后将结果回告教师2,初始化学生类: 3,设置回调方法。(此方法被Stud...

  • Java相关博客推荐阅读--Java回调机制

    Java回调机制 这篇文章循循渐进的介绍了什么是Java回调机制,以及在Java中的简单实现。通过形象生动的例子,...

  • Thinging in Java阅读时遇到的问题

    菜鸟教程Java回调机制解读Java回调机制总结内部类标识符JAVA foreach和普通for循环是否需要判断为...

  • Kotlin使用接口回调

    1.Java中的接口回调实现(支持多方法回调) 声明回调接口,初始化接口 使用接口回调(无参数) 使用接口回调(带...

  • Java中的回调机制

    调用方式 例子: 同步调用情况 同步调用是最简单的方式,按照顺序,a调用b,当b执行完,那么a才会继续往下执行。如...

  • Java中的回调机制

    最近看书老是看到书里说道回调方法,一脸懵逼的不懂什么意思,于是就google查了下,发现好多说的都不是特别的直白,...

  • java接口回调机制

    转载的正文 地址--理解java接口回调机制

  • java回调机制

    回调的基本概念 在java中,我们可以将回调简单理解为:类A中的a方法调用类B中的b方法,而类B的b方法有反过来调...

  • java回调机制

    java的调用机制主要分为同步调用、异步调用、回调这三种,当然也包括一些其它的,例如异步回调等。 同步调用是我们平...

网友评论

      本文标题:Java中回调机制的使用

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