为什么我们必须在Java中使用Thread.sleep()
而不是sleep()
?是什么原因迫使开发人员使用“更长”的版本?
答案 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
方法,那么所有类都是通用的,这一点并不清楚。