简单的回调函数:每隔一秒返回当前时间

这是一个简单的回调函数,Receive调用Timer类,Time生成当前时间回调Receive类的show方法打印出来。

1.回调接口CallBack类

package Call;

@FunctionalInterface
public interface CallBack<T> {

    void cBack(T t);
}

2.工具类Timer

package Time;

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;

import Call.CallBack;

public class Timer extends Thread{

    public List<CallBack<LocalDateTime>> callList = new ArrayList<CallBack<LocalDateTime>>();

    @Override
    public void run() {
        try {
            while(true) {
                doRun();
                sleep(1000);
            }            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

    private void doRun() {
        for(CallBack<LocalDateTime> c : callList) {
            c.cBack(LocalDateTime.now());
        }
    }
    
    
}

3.回调类Receive

package Demo;

import java.time.LocalDateTime;
import java.time.LocalTime;

import Call.CallBack;
import Time.Timer;

public class Receive {
    public Timer timer;

    public Receive(){
        timer = new Timer();
        timer.callList.add(new CallBack<LocalDateTime>() {
            
            @Override
            public void cBack(LocalDateTime t) {
                show(t);
            }
        });
    }

    protected void show(LocalDateTime t) {
        System.out.println("当前时间为:"+t);
    }
    
    public static void main(String[] args) {
        new Receive().timer.start();
    }
}

猜你喜欢

转载自www.cnblogs.com/mrzhunote/p/11230779.html
今日推荐