我创建了一个名为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/

10-09 06:40
查看更多