概述
回调是java的一种编程思路,旨在将一系列操作封装在一个对象中,并将这个对象传递给另一个方法,以便这个方法在需要的时候(返回去)调用那个对象中的操作。
Timer类就是典型的运用了这个编程思想,这个类提供的功能就是执行定时操作,而具体的操作就封装在我们定义的类中,Timer类对象可以选择多久之后执行我们定义的方法,这个执行逻辑和方法就是典型的回调。
代码示例
public class Main {
public static void main(String[] args){
Timer timer = new Timer(1000,new timePrinter());
timer.start();
while(true){}
}
}
class timePrinter implements ActionListener{
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy:MM:dd HH:mm:ss");
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(LocalDateTime.now().format(formatter));
}
}
在该案例中,我们定义了一个timePrinter类用于存放回调所用的方法,然后将这个对象传入timer对象,timer就可以在适当的时机(每1000毫秒)执行actionPerformed方法了。
经验总结
除此之外,java的特性中还有很多地方用到了回调的思想,例如用于比较的Comparator接口,Arrays类的sort方法除了传入实现了Comparable接口的数组以外,还可以通过传入指定的Comparator接口来实现不同的排序逻辑,而我们定义的排序逻辑就是典型的用于回调