以前对接口回调的机制总是模糊不清,今天学习了个案例对接口回调有了一定给的了解,分享给大家!
首先我们通过例子来说明问题:
学生问问题给老师
学生问:java中有几种数据类型?
老师想了一会儿(一段时间)才回答:8种,
通过接口回传给学生通过代码接口回调模拟这一场景:
首先声明接口:用于传递老师的答案
public interface Callback {
void send(String s);
}
创建Student类:
public class Student {
public void ask(String question,Teacher t){
System.out.println("学生的问题是:"+question);
t.solve(question, new Callback() {
@Override
public void send(String s) {
// TODO Auto-generated method stub
System.out.println("老师的答案是:"+s);
}
});
}
}
创建Teacher类
public class Teacher {
public void solve(String question,Callback cb){
String answer = "8种";
cb.send(answer);
}
测试类:
public class Test {
public static void main(String[] args) {
Student s = new Student();
Teacher t = new Teacher();
s.ask("java有几种数据类型", t);
}
}
最后输出结果:
学生的问题是:java有几种数据类型
老师的答案是:8种