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("输出内容"); 
} 

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

你可能感兴趣的:(import和import static的区别)