Java - 方法sleep(int)未定义Thread类型

Nic*_*ong 2 java multithreading

我收到一个错误:方法sleep(int)未定义Thread类型.我认为sleep方法在Java中的Thread类中.

import java.util.Random;

public class Thread implements Runnable {

    String name;
    int time;
    Random r = new Random();

    public Thread(String s){
        name = s;
        time = r.nextInt(999);
    }

    public void run() {
        try{
            System.out.printf("%s is sleeping for %d\n", name, time);
            Thread.sleep(time);
            System.out.printf("%s is done", name);
        } catch(Exception e ) {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

sou*_*eck 18

你实现了自己的类调用Thread并尝试调用sleep它,失败了,因为sleep你的类中没有定义.你的课程基本上影响了java的Thread课程.

以不同方式打电话给你的班级(即,如owlstead所述,MyThread甚至更好MyRunnable)或java.lang.Thread.sleep()直接打电话.

  • +1:一个很好的例子,说明为什么你不应该给你的类标准类的名称. (4认同)

cHa*_*Hao 5

它不在你的 Thread班上.

既然你命名了你的类Thread,那就是Java所寻找的Thread.sleep.如果您想要内置于Java中的函数,请尝试java.lang.Thread.sleep(time);.