java 靜態導入 import static

今天在學習Activiti in action書中有發現有一段單元測試的代碼使用了assertNotNull()函數,它是org.juint.Assert類的一個靜態成員函數。可是爲何能夠直接使用assertNotNull()而不是寫成Assert.assertNotNull()呢?思考了一陣沒有得出答案,打開源碼查看,發現做者使用了靜態導入,意識到這是個人一個java盲區,因此簡單學習了一下,總結以下: java

import static 靜態導入是JDK1.5的新特性。靜態導入的格式以下: 函數

    import static com...ClassName.* 單元測試

相對於常規的import,import static在完整的類限定名後添加了.*,表示導入這個類的靜態方法。固然,也能夠只導入類的某個靜態成員變量或方法,把*換成變量或方法名就能夠了。再導入後能夠直接使用方法名調用靜態方法,而沒必要用ClassName.方法名的方式調用。 學習

很簡單,就不敲代碼了。如下是一些須要注意的地方: 測試

必須是import static,不能是static import; ui

提防static成員重名的狀況,好比靜態導入Integer類和Long類的靜態成員,引用MAX_VALUE會致使一個編譯錯誤,由於Integer和Long都有MAX_VALUE靜態成員。 源碼

相關文章
相關標籤/搜索