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




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




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

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