相关疑难解决方法(0)

将lambda传递给Timer而不是TimerTask

我想在地图上执行延迟操作,所以我正在使用Timer,我传递的是TimerTask一个延迟,以毫秒为单位:

timer.schedule(new TimerTask() {
    public void run() {
        tournaments.remove(id);
    }
}, delay);
Run Code Online (Sandbox Code Playgroud)

这是一种类似原始缓存的功能,我在刚刚创建的新资源上设置了到期时间.

我以为我可以使用lambdas做到这一点,如下所示:

times.schedule(() -> tournaments.remove(id), delay);
Run Code Online (Sandbox Code Playgroud)

但是编译器说这不能做到.为什么?我究竟做错了什么?我可以使用lambdas来实现更简洁的代码,或者在这里根本不可能,我应该坚持使用匿名类吗?

java lambda java-8

14
推荐指数
2
解决办法
8773
查看次数

标签 统计

java ×1

java-8 ×1

lambda ×1