import static靜態導入是JDK1.5中的新特性。通常咱們導入一個類都用 import com.....ClassName;而靜態導入是這樣:import static com.....ClassName.*;這裏的多了個static,還有就是類名ClassName後面多了個 .* ,意思是導入這個類裏的靜態方法。固然,也能夠只導入某個靜態方法,只要把 .* 換成靜態方法名就好了。而後在這個類中,就能夠直接用方法名調用靜態方法,而沒必要用ClassName.方法名 的方式來調用。
這種方法的好處就是能夠簡化一些操做,例如打印操做System.out.println(...);就能夠將其寫入一個靜態方法print(...),在使用時直接print(...)就能夠了。
可是這種方法建議在有不少重複調用的時候使用,若是僅有一到兩次調用,不如直接寫來的方便 java
在Java 5中,import語句獲得了加強,以便提供甚至更增強大的減小擊鍵次數功能,雖然一些人爭議說這是以可讀性爲代價的。這種新的特性成爲靜態導入。 在靜態導入以前:對象
在靜態導入以後: |
|
兩個類都產生相同的輸出:
讓咱們看一下使用靜態導入特性的代碼中將發生什麼:
一、雖然該特性一般稱爲「靜態導入」,但語法必須是import static,後面跟你想導入的static成員的徹底限定名稱,或者通配符。在本例中,咱們在System類的out對象上進行靜態導入。ci
二、在本例中,咱們可能想使用java.lang.Integer類的幾個static成員。該靜態導入語句使用通配符來表達「我想在此類中的全部靜態成員上進行靜態導入」。開發
三、如今咱們終於看到靜態導入特性的好處!咱們沒必要在System.out.println中鍵入System。太好了!另外,咱們沒必要在Integer.MAX_VALUE中鍵入Integer。所以,在這行代碼中,咱們可以將快捷方式用於靜態方法和一個常量。編譯器
四、最後,咱們進行更多的快捷操做,此次針對Integer類的方法。io
關於該特性,咱們已經有點兒諷刺意味兒了,但不只咱們是這樣的。咱們不認爲節省少許的擊鍵次數會讓代碼難於閱讀一點,但許多開發人員要求將它添加到語言中。編譯
下面是使用靜態導入的幾條原則:table