import和import static的区别

一、两种import的区别

import static静态导入是JDK1.5中的新特性。一般我们导入一个类都用 import 包名.类名;例如:import org.elasticsearch.index.query.QueryBuilders;

而静态导入是这样:import static 包名.类名.*;例如:import static org.elasticsearch.index.query.QueryBuilders.matchQuery;

这里的多了个static,还有就是类名后面多了个 .* 。意思是导入这个类里的静态成员(静态方法、静态变量)。当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了。然后在这个类中,就可以直接用方法名调用静态方法,而不必用“类名.方法名()” 的方式来调用。例如:matchQuery("name", keyword)
这种方法的好处就是可以简化一些操作,例如一些工具类的静态方法,如果使了静态导入,就可以像使用自己的方法一样使用这些静态方法。

二、特点

在使用静态导入之前,我们必须了解下面几点:

  1. 静态导入可能会让代码更加难以阅读;
  2. import static和static import循序不能变;
  3. 如果同时导入的两个类中又有重名的静态成员,会出现编译器错误。例如:Integer类和Long类的MAX_VALUE。
  4. 可以导入的静态成员包括静态对象引用、静态常量和静态方法。

三、示例

举个例子来说:
用import的情况:

public static void main(String args[]){ 
       System.out.println("输出内容"); 
} 

用import static 的情况:

import static java.lang.System.out; 
public static void main(String args[]){ 
       out.println("输出内容"); 
} 

两者的输出情况是一样的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容