【问题标题】:Difference between import and static import?导入和静态导入的区别?
【发布时间】:2015-04-13 03:08:22
【问题描述】:

普通导入语句和静态导入语句之间有什么真正的(即实际的)区别?

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 import static


【解决方案1】:

从 java 5 开始引入了静态导入。实际上,“导入静态”用于减少击键次数,这意味着您无需为要使用的静态成员编写类名。

在您的示例中,使用import static java.lang.System.*,您只需要编写out.println("Hello");,而通常您必须编写System.out.println("Hello");,即我们必须在每次需要调用静态成员时编写类名(System)(出)。

【讨论】:

    【解决方案2】:

    除了@venkatesh 的回答,值得指出的是关于什么时候应该使用静态导入?

    那么什么时候应该使用静态导入呢? 非常谨慎!仅在以下情况下使用它 否则你会很想声明常量的本地副本,或者 滥用继承(常量接口反模式)。其他 换句话说,当您需要经常访问静态成员时使用它 一到两节课。如果过度使用静态导入功能,它可以 使你的程序不可读和不可维护,污染它 包含您导入的所有静态成员的命名空间。您的代码的读者 (包括你,写完几个月后)不知道是哪个 静态成员来自的类。导入所有静态成员 从类中提取可能对可读性特别有害;如果你需要 只有一两个成员,单独导入。使用得当, 静态导入可以使您的程序更具可读性,通过删除 类名重复的样板。

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      相关资源
      最近更新 更多