紫風亂寫

          除了他眼前的屏幕,這個人什么也沒看見。
          被周圍的電腦簇擁著,他只知道他所創造的現實,但又意識到那是虛幻。
          他已經超越了技術。也超越了機器。
          posts - 62, comments - 93, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于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.*。這是一個很方便的功能。

          package cn.justfly.study.tiger;

          import 
          static java.lang.Math.max;
          import 
          static java.lang.Math.min;
          /**
           * Sample of Static Import
           * @author Justfly Shi
           * created at 2005-9-3 23:41:50
           
          */

          public class StaticImport {

            
          /**
             * @param args
             
          */

            
          public static void main(String[] args) {
             
          /*
              * min() and max() are defined in java.lang.Math as static method.
              * but they can now be easily access.
              * 
          */

             
          int min=min(3,4);
             System.
          out.println("min is : "+min);
             
          int max=max(3,4);
             System.
          out.println("max is : "+max);

            }


          }


          但是這個功能卻不能濫用。因為它會導致代碼的可讀性變得很差。考慮一下一個未曾接觸過java.lang.Math類的讀者來看這段代碼。當他讀到“int min=min(3,4)”,他會很迷惑,這個min函數到底是在哪里定義的呢?于是他就得去分析import這里。這段代碼還好說,只有一個類被靜態導入,只需要打開 java.lang.Math的文檔就可以直接了解這些方法的相關信息了。但是如果同時靜態導入了10個類的情況下呢?如果這些類中有著名字類似(相同)但是行為卻不一致的方法的時候呢?比如Person.eat(Food food)和 Animal.eat(Food food)。

          那么這個功能該如何用呢?我認為一些常用的工具類、全局變量類等當需要在一個類中多次使用的時候可以導進來,但是對于系統中的模型類或者是用的次數不多的工具類還是不要導入的好。我們需要在自己寫代碼時的方便和代碼本身的可讀性間做個權衡。

          主站蜘蛛池模板: 宾阳县| 邛崃市| 宜阳县| 广南县| 汝城县| 灌阳县| 湖北省| 西藏| 东丽区| 金秀| 佛学| 贺州市| 宜宾市| 望奎县| 大厂| 招远市| 海伦市| 宜兰市| 浮梁县| 临桂县| 扎鲁特旗| 旺苍县| 海伦市| 新宁县| 新巴尔虎右旗| 宣化县| 荆门市| 秀山| 山西省| 临海市| 凤凰县| 成都市| 翁源县| 大竹县| 安阳市| 尤溪县| 巨鹿县| 凤翔县| 丹巴县| 瑞昌市| 广灵县|