關于java 5中的static import的一點討論
Posted on 2005-09-11 20:15 Justfly Shi 閱讀(1126) 評論(0) 編輯 收藏 所屬分類: Study Tiger在java5中添加的一個新特性就是static import(靜態導入?)通過靜態導入我們可以很方便的使用在其他類中定義的函數。如下面的代碼所示,我們可以直接的使用java.lang.Math 的min和max以及其他在java.lang.Math中所定義的靜態方法,只需要在import中添加一句import static java.lang.Math.*。這是一個很方便的功能。




























但是這個功能卻不能濫用。因為它會導致代碼的可讀性變得很差。考慮一下一個未曾接觸過java.lang.Math類的讀者來看這段代碼。當他讀到“int min=min(3,4)”,他會很迷惑,這個min函數到底是在哪里定義的呢?于是他就得去分析import這里。這段代碼還好說,只有一個類被靜態導入,只需要打開 java.lang.Math的文檔就可以直接了解這些方法的相關信息了。但是如果同時靜態導入了10個類的情況下呢?如果這些類中有著名字類似(相同)但是行為卻不一致的方法的時候呢?比如Person.eat(Food food)和 Animal.eat(Food food)。
那么這個功能該如何用呢?我認為一些常用的工具類、全局變量類等當需要在一個類中多次使用的時候可以導進來,但是對于系統中的模型類或者是用的次數不多的工具類還是不要導入的好。我們需要在自己寫代碼時的方便和代碼本身的可讀性間做個權衡。