import和import static的區(qū)別

一、兩種import的區(qū)別

import static靜態(tài)導(dǎo)入是JDK1.5中的新特性。一般我們導(dǎo)入一個類都用 import 包名.類名;例如:import org.elasticsearch.index.query.QueryBuilders;

而靜態(tài)導(dǎo)入是這樣:import static 包名.類名.*;例如:import static org.elasticsearch.index.query.QueryBuilders.matchQuery;

這里的多了個static,還有就是類名后面多了個 .* 。意思是導(dǎo)入這個類里的靜態(tài)成員(靜態(tài)方法、靜態(tài)變量)。當(dāng)然,也可以只導(dǎo)入某個靜態(tài)方法,只要把 .* 換成靜態(tài)方法名就行了。然后在這個類中,就可以直接用方法名調(diào)用靜態(tài)方法,而不必用“類名.方法名()” 的方式來調(diào)用。例如:matchQuery("name", keyword)
這種方法的好處就是可以簡化一些操作,例如一些工具類的靜態(tài)方法,如果使了靜態(tài)導(dǎo)入,就可以像使用自己的方法一樣使用這些靜態(tài)方法。

二、特點

在使用靜態(tài)導(dǎo)入之前,我們必須了解下面幾點:

  1. 靜態(tài)導(dǎo)入可能會讓代碼更加難以閱讀;
  2. import static和static import循序不能變;
  3. 如果同時導(dǎo)入的兩個類中又有重名的靜態(tài)成員,會出現(xiàn)編譯器錯誤。例如:Integer類和Long類的MAX_VALUE。
  4. 可以導(dǎo)入的靜態(tài)成員包括靜態(tài)對象引用、靜態(tài)常量和靜態(tài)方法。

三、示例

舉個例子來說:
用import的情況:

public static void main(String args[]){ 
       System.out.println("輸出內(nèi)容"); 
} 

用import static 的情況:

import static java.lang.System.out; 
public static void main(String args[]){ 
       out.println("輸出內(nèi)容"); 
} 

兩者的輸出情況是一樣的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容