将 lambda 传递给计时器而不是计时器任务
我想在地图上执行延迟操作,因此我正在使用,我正在向其传递一个和以毫秒为单位的延迟:Timer
TimerTask
timer.schedule(new TimerTask() {
public void run() {
tournaments.remove(id);
}
}, delay);
这是某种类似于原始缓存的功能,我在刚刚创建的新资源上设置了过期时间。
我认为我可以使用lambdas做到这一点,就像下面这样:
times.schedule(() -> tournaments.remove(id), delay);
但是编译器说这是不可能的。为什么?我做错了什么?我可以使用lambda来实现更简洁的代码,或者在这里根本不可能,我应该坚持使用匿名类?