普通import语句和静态import语句之间有什么真正的(i.s. practical)区别?
import static java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
out.println("Hello");
out.println("Java");
}
}
import java.lang.System.*;
class StaticImportExample{
public static void main(String args[]){
System.out.println("Hello");
System.out.println("Java");
}
}
从java 5开始,引入了静态导入。实际上,“import static”用于减少击键次数,这意味着您不需要为要使用的静态成员编写类名。
在你的例子中,使用import static java.lang.System.*
你只需要编写out.println("Hello");
,而通常你必须编写System.out.println("Hello");
,即每次我们需要调用它的静态成员(out)时我们必须编写类名(System)。
除了@ venkatesh的回答之外,值得指出关于何时应该使用静态导入的javadoc文档?
那么什么时候应该使用静态导入?非常谨慎!只有在您试图声明常量的本地副本或滥用继承(Constant Interface Antipattern)时才使用它。换句话说,当您需要频繁访问来自一个或两个类的静态成员时,请使用它。如果过度使用静态导入功能,它可能会使您的程序不可读且无法维护,并使用您导入的所有静态成员污染其命名空间。您的代码的读者(包括您,在您编写它几个月后)将不知道静态成员来自哪个类。从类中导入所有静态成员对可读性特别有害;如果您只需要一个或两个成员,请单独导入它们。如果使用得当,静态导入可以通过删除重复类名的样板来使程序更具可读性。