从ScheduledExecutorService示例用法中获取编译错误

时间:2019-01-13 02:38:55

标签: java android compiler-errors threadpoolexecutor scheduledexecutorservice

我刚刚在程序中导入并开始使用ScheduledExecutorService,但从其文档中获得了示例用法示例的编译错误:

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

    public void beepForAnHour() {
        final Runnable beeper = new Runnable() {
             public void run() { System.out.println("beep"); }
        };

        final ScheduledFuture<?> beeperHandle = scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);

        scheduler.schedule(new Runnable() {
            public void run() { beeperHandle.cancel(true); }
        }, 60 * 60, SECONDS);
    }
}

我正在Android Studio(版本3.2.4)中进行开发。我还尝试强制我的项目使用Java版本1.8,但这并没有执行任何操作。 (该项目通常使用Java 1.7)

错误如下:

  

错误:无法将ThreadPoolExecutor类中执行的方法应用于给定类型;

     

必填:可运行

     

找到:没有参数

     

原因:实际和形式参数列表的长度不同

我不使用ThreadPoolExecutor,据我所知,上面的示例使用正确数量的参数正确调用了ScheduledExecutorService的所有方法。

更新 我已经在自己的文件中单独测试了代码示例,并尝试在终端中对其进行编译,并且编译起来还不错。因此,这意味着我的周围代码或环境有问题。我将对其进行更多研究,并在找到它时用更多详细信息更新这个问题。

1 个答案:

答案 0 :(得分:0)

看来这个愚蠢的错误只是由于我自己的错误。在创建新类和构建新体系结构的同时,我一定没有构建我的应用程序一段时间。

基于这个原因,我确实有一个实现ThreadPoolExecutor的类,但是我已经放弃了该类供其他库使用,并完全忘记了!

故事的故事

跟踪您的想法,如果您不使用它们,则将其正确注释掉。然后,一旦完成开发该功能,请记住将其删除!