这个错误通常出现在使用Timer类的schedule方法时,run方法的返回类型与所期望的类型不匹配。
以下是一个示例代码和解决方法:
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 1000);
}
static class MyTask extends TimerTask {
@Override
public boolean run() { // 错误的方法返回类型,应为void
System.out.println("Task is running");
return true;
}
}
}
这个示例中,我们在MyTask类中的run方法中返回了一个boolean类型的值,而TimerTask类的run方法是void类型的,因此会出现不兼容的类型错误。
要解决这个问题,我们需要将MyTask类中的run方法返回类型修改为void,代码示例如下:
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 1000);
}
static class MyTask extends TimerTask {
@Override
public void run() { // 修改为void类型
System.out.println("Task is running");
}
}
}
通过将返回类型修改为void,我们解决了不兼容的类型错误。