java - 参数不匹配;方法无法转换为TimerTask

标签 java timer schedule timertask

我不断收到此类错误:

error: no suitable method found for schedule(soccer,int)

method Timer.schedule(TimerTask,long) is not applicable

(argument mismatch; soccer cannot be converted to TimerTask)

method Timer.schedule(TimerTask,Date) is not applicable

(argument mismatch; soccer cannot be converted to TimerTask)

import java.util.*;
public class Balls{
    private static int time = 1;

    public static void main(String[] args){
        int a=0,b=0,c=0,d=0,e=0;
        volley one = new volley();
        beach two = new beach();
        soccer three = new soccer();
        basket four = new basket();
        pokemon five = new pokemon();

        Timer myTime1 = new Timer();
        Timer myTime2 = new Timer();
        Timer myTime3 = new Timer();
        Timer myTime4 = new Timer();
        Timer myTime5 = new Timer();

        for(int x=0; x<20000; x+=5000){
            if(x==5000){
                myTime1.schedule(one,(x-1000));
                myTime1.schedule(two,(x+500));
                myTime1.schedule(three,(x-500));
                myTime1.schedule(four,(x+1000));
                myTime1.schedule(five,(x-500));
            }
            else if(x==10000){
                myTime1.schedule(one,(x+500));
                myTime1.schedule(two,(x-1000));
                myTime1.schedule(three,(x+1000));
                myTime1.schedule(four,(x-500));
                myTime1.schedule(five,(x+500));
            }
            else if(x==15000){
                myTime1.schedule(one,(x-500));
                myTime1.schedule(two,(x+1000));
                myTime1.schedule(three,(x+500));
                myTime1.schedule(four,(x+500));
                myTime1.schedule(five,(x+1000));
            }
            else if(x==20000){
                myTime1.schedule(one,(x+1000));
                myTime1.schedule(two,(x-500));
                myTime1.schedule(three,(x-1000));
                myTime1.schedule(four,(x-1000));
                myTime1.schedule(five,(x-1000));
            }
            else{
                break;
            }
        }    
    }
}

class volley extends TimerTask{
public void run(){
    System.out.println("Volley ball");
}
}
class beach extends TimerTask{
public void run(){
    System.out.println("Beach ball");
}
}
class soccer{
public void run(){
    System.out.println("Soccer ball");
}
}
class basket{
public void run(){
    System.out.println("Basket ball");
}
}
class pokemon{
public void run(){
    System.out.println("Pokemon Ball");
}
}

第一次发帖,发帖不好,抱歉。

最佳答案

soccer 需要扩展 TimerTask 才能由 Timer 调度,如下所示:

class soccer extends TimerTask {
   @Override
   public void run(){
       System.out.println("Soccer ball");
   }
}

这同样适用于篮子和口袋妖怪类别。

实际上,您的代码无法编译,因为这些类不是 TimerTask 的实例,并且您尝试在 myTime1.schedule 中使用它们

关于java - 参数不匹配;方法无法转换为TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49384321/

相关文章:

java.lang.ClassCastException : oracle. sql.ARRAY 无法转换为 oracle.sql.ARRAY

linux - 使用 glibc 定时器时出现段错误

java - 如何每 x 秒重绘一个 jpanel?

java - 计时器时间表-Java

java - 在 Java 中抛出多个检查异常有什么问题?

java - JTextArea/JTextComponent setText 导致崩溃

java - 关于克服 Java 中缺乏多重继承的任何既定做法?

java - 在运行时修改 Swing 计时器的延迟

java - 如何让TimerTask在特定时间段内运行并

c# - 按特定日期名称找出下周时间表的最佳方法