我创建了一个名为Thread
的类,该类实现Runnable
,但由于某种原因我无法调用start()
或sleep()
方法。每当我尝试这样做时,都会收到错误消息,指出该类未定义这些方法,并建议我创建它们。因此,我创建了一个新项目并复制了示例代码,以查看自己的代码是否存在问题,并且收到相同的错误。这是示例代码:
class Thread implements Runnable {
private int a;
public Thread (int a) {
this.a = a;
}
public void run() {
for (int i = 1; i <= a; ++i) {
System.out.println(Thread.currentThread().getName() + " is " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
}
}
}
这是我自己的代码:
public class Thread extends PID implements Runnable {
public Thread() {}; // Empty constructor for thread object
public void run() {
Random gen = new Random(); // Generates random values
int sleepTime; // Sleep time
sleepTime = gen.nextInt(60 - 1) + 1; // Generates random sleep time between 1 and 60 seconds
try {
Thread.sleep();
} catch (Exception e) {
System.out.println(e);
}
System.out.println("The thread has been terminated");
}
}
最佳答案
要解决当前错误,只需将Thread
类重命名为MyThread
(或其他名称),因为Thread
类隐藏了java.lang.Thread
类。
如果要坚持使用Thread
,则必须使用java.lang.Thread
的完全限定名称,如下所示:
try{
java.lang.Thread.sleep(1000);
// ...
关于java - 类实现Runnable,但未定义start()和sleep()方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17026272/