因此,如果删除import语句,以下非线性的线程示例不会编译。但是,早些时候我没有导入Thread类。有没有人通过这个,请帮助我。
import java.lang.Thread;
class Test {
public static void main(String args[]) {
Thread t = Thread.currentThread();
System.out.println("current thread is "+t);
t.setName("amar");
System.out.println("after name change "+t);
try {
for(int n=5;n>0;n--) {
System.out.println(n);
Thread.sleep(1000);
}
}catch(InterruptedException e) {
System.out.println("main interrupted");
}
}
}
答案 0 :(得分:6)
您不需要导入java.lang
中的任何类。 java.lang
中的类通常可以在没有显式导入的情况下使用。
“编译单元自动访问其包中声明的所有类型,并自动导入预定义包
java.lang
中声明的所有公共类型。” - {{3} }。
当您声明另一个与java.lang
类同名的类时,可能需要显式导入java.lang
类的唯一情况。在某些情况下, 类可能优先于java.lang
中的类,强制您导入java.lang
类,或使用其完全限定名称。
最好避免声明与常用Java库类名称相同的类,尤其是java.lang
中的类。