我不断得到这样的错误:
错误:找不到适合计划的方法(足球,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");
}
}
对不起可怜的岗位,第一次做这件事。
您正在创建一个soccer
soccer three=new soccer();
类型的新对象,然后尝试将此类型为“soccer”的对象作为计时器调度函数的第一个参数传递。
但调度函数希望第一个参数的类型为TimerTask
。
你需要做的是
>
使足球类从TimerTask扩展
@override
run()
函数。
例如:
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()
类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: 在我的活动课上,我有这样的内容: