?
管中窺虎
在學(xué)習(xí)
java 1.5
的過程中,我使用了
sun
公布的
tutorial
,這份文檔寫的比較詳盡易明,但是對于想快速了解
tiger
而且具有較好
java
基礎(chǔ)的人來說,大篇幅的英文文檔是比較耗時間和非必需的,所以我將會歸納這份文檔的主要內(nèi)容,在保證理解的底線上,盡力減少閱讀者需要的時間。
在以下地址可以進入各新增語言特色介紹以及下載相關(guān)文檔(若有)。
http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html
Static import
要使用一個類的靜態(tài)成員,就要添加上類的名稱,比如:




為了擺脫這些類名,有些程序員會把靜態(tài)成員放到一個接口里然后去實現(xiàn)這個接口,這個可不好。實際上,這樣做已經(jīng)糟糕到有幸成為了反模式:
Constant Interface Antipattern 。(參加 Effective java Item 17 ) 一個類用別的類的靜態(tài)成員是實現(xiàn)的細節(jié),而當(dāng)這個類實現(xiàn)這樣的接口時,這個接口就成為了這個類的接口的一部分,而實現(xiàn)細節(jié)是不應(yīng)該漏入到 public 的接口中。而 static import 可以讓一個類可以不需要指定類名地使用靜態(tài)成員,而且不需繼承額外的接口,它引入了這些成員,可以單獨地或者全體引入:




然后就可以簡潔地使用它們:

?
static import 和以前的 import 類似, import 從包里引入 class, 而 static import 從類里引入成員。
又到了經(jīng)典一問:何時該用這個新特色?
要很謹慎地使用!只有當(dāng)你不用它就被迫要么聲明外部 static 成員的本地副本要么就墮落到那個反模式中的時候,你才應(yīng)該用它,換言之,當(dāng)你需要頻繁地使用某一兩個類的靜態(tài)成員時才應(yīng)該使用 static import 。濫用的后果就是讓你的代碼可讀性變差,命名空間被大量的引入的靜態(tài)成員所污染。若干星期后,連你自己都讀得不明不白。而且如果只是用得到其中的一兩個成員,就不要用批量的引入了。