当前位置: 首页 > 知识库问答 >
问题:

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

白浩气
2023-03-14

我不断得到这样的错误:

错误:找不到适合计划的方法(足球,int)

方法Timer.Schedule(TimerTask,long)不适用

参数不匹配;soccer无法转换为TimerTask)

方法timer.schedule(TimerTask,Date)不适用

(参数不匹配;soccer无法转换为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");
}
}

对不起可怜的岗位,第一次做这件事。

共有2个答案

羊舌涵涤
2023-03-14

您正在创建一个soccer
soccer three=new soccer();
类型的新对象,然后尝试将此类型为“soccer”的对象作为计时器调度函数的第一个参数传递。
但调度函数希望第一个参数的类型为TimerTask

你需要做的是

>

  • 使足球类从TimerTask扩展

    @overriderun()函数。

    例如:

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

    那么您只需要像这样创建对象:

    TimerTask three = new soccer();
    

    从TimerTask扩展还提供Cancel()ScheduleDexecutionTime()函数
    后者返回此任务最近一次实际执行的计划执行时间。
    Cancel()非常简单,它取消了timer任务。

    因此您可以调用例如:

    three.cancel()    
    

    long execTime = three.scheduledExecutionTime()
    

  • 马沛
    2023-03-14

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

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

    同样的道理也适用于《篮子》和《口袋妖怪类》。

    实际上,您的代码无法编译,因为这些类不是TimerTask的实例,而您试图在MyTime1.Schedule中使用它们

     类似资料:
    • 问题内容: 我有以下几行代码 我认为第3行和第4行执行相同的任务,然后为什么编译器在第4行显示错误“类型不匹配:无法从long转换为int” 请帮忙。 问题答案: 这是因为复合赋值运算符会进行隐式转换。 从JLS复合分配运算符: 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 对于二进制运算符,则必须显式进行强制转换。进行第四项作业: 它会工作。这就是您的复合赋值表达

    • 问题内容: 我正在使用ZXING库在JAVA中创建QR码生成器程序。该程序是 编译该程序时,出现类型不匹配错误, 在这条线 请帮忙!!! 问题答案: 我自己从未使用过该库,但是阅读错误消息时,我会假设您必须要以字节为单位存储字节的问题。问题将是一个字节由多个位组成,因此您不能仅通过一位表示一个字节。 将编码数据存储到ByteMatrix中,然后阅读以下内容: 使用zxing进行QR码编码和解码 完

    • 但它抱怨说: 如何同时解决这两个错误?

    • 我试图通过对通过其JNDI引用查找的EJB的反射来调用一个方法。它需要三个参数:EndUser对象(自定义对象)、Set(自定义类)和布尔值。第一个对象使用“无法调用方法:java.lang.IllegalArgumentException:参数类型不匹配”导致调用失败。只要第一个参数非空,就会发生这种情况。将其设置为空会使错误消失。 实际通话: EjbUtils方法: 我尝试调用的方法: 奇怪的

    • 问题内容: 如何将整数转换为布尔值? 问题答案: 尝试使用此返回 或仅使用布尔值开始(使用更好的名称): 它继续使我迷惑人们为什么使用-可怕的变量名。看起来并不传达任何意义。

    • 我创建了一个AsyncTaskLoader: 在我的活动课上,我有这样的内容: