为什么我们需要在Java中使用Thread.sleep()而不是Sleep()?

时间:2014-10-23 07:05:58

标签: java thread-sleep

为什么我们必须在Java中使用Thread.sleep()而不是sleep()?是什么原因迫使开发人员使用“更长”的版本?

3 个答案:

答案 0 :(得分:5)

因为sleep()Thread静态方法。您可以静态导入它,然后使用sleep()

import static java.lang.Thread.sleep;
public static void main( String[] args )
    {
        try
        {
            sleep( 1000 );
        }
        catch ( InterruptedException e )
        {
            e.printStackTrace();
        }
    }

见这里: http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

另请参见此处(https://stackoverflow.com/a/421127/461499),了解为什么要使用静态导入。

答案 1 :(得分:0)

Java是一种面向对象的语言 - 每个方法("函数")必须属于一个类,即使它是static方法(例如,考虑到那里&#39) ; s no" global" print函数 - 您必须调用System.out.print)。但是,如果它真的让你讨厌,你可以静态导入方法:

import static java.lang.Thread.sleep

public class MyClass {
    public static void main (String[] args) {
        sleep (10);
    }
}

答案 2 :(得分:0)

sleep()类中的

Thread方法是static方法。我们不使用实例对象访问static方法。

this.sleep()Thread.sleep()都是相同的,但它违反了约定。

static关键字表示如果您使用实例变量来访问static方法,那么所有类都是通用的,这一点并不清楚。