風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          jdk1.5 static import

          static import
          static import就是允許在代碼中直接引用別的類的static變量和方法(當然,在權限許可范圍內),我們可以簡單的把它當成import的延續。
          它的語法如下:
          import static CLASS_NAME.MEMBER_NAME;
          或者 import static CLASS_NAME.×;


          事實上,Tiger引入static import最主要考慮到兩個需要,第一個就是對一些工具性的,常用的靜態方法進行直接引用。
          比如,java.lang.Math里的一大堆數學方法abs,exp等。
          第二個就是對常數變量進行直接引用,其中也包擴對enum的直接引用(參考上一篇文章Season的例子)
          [code]
          //StaticImportTest.java
          import static java.lang.Math.*;

          public class StaticImportTest{

          public static void main(String arsg[]){
          System.out.println("1 + 1 ="+(1+1));
          System.out.println("abs(-1)="+abs(-1));
          System.out.println("exp(1.5)="+exp(1.5));
          System.out.println("Pi = "+PI);
          System.out.println("E = "+E);

          }

          }
          [/code]
          這樣的代碼不僅省卻了Programmer的勞動,在可讀性上也是有所增強。

          static import的限制和import也基本一樣,就是不能出現二義性。
          另外,static import不支持先import類,然后import static 類.*(不加package)的形式

          [code]
          import??java.util.*;
          import static Calendar.*;
          ......
          [/code]
          就算在同一個包也是如此。

          值得注意的是,過多的static import也許可能影響程序的可讀性,如:
          [code]
          //StaticImportTest2.java
          import static java.lang.Integer.parseInt;
          import static java.lang.Double.*;

          public class StaticImportTest{

          public static void main(String arsg[]){
          String iv = "1239";
          String dv = "123.3456";
          System.out.println(iv+":"+parseInt(iv));
          System.out.println(dv+":"+parseDouble(dv));
          System.out.println("Double's MaxValue is:"+MAX_VALUE );

          }
          [/code]
          雖然能編譯通過,但是卻很容易混繞讀者視線。

          posted on 2006-12-16 15:52 風人園 閱讀(372) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 平顶山市| 三明市| 连州市| 新龙县| 尉氏县| 庄浪县| 吕梁市| 凭祥市| 富源县| 南皮县| 桐城市| 青田县| 手游| 松潘县| 亚东县| 蓬安县| 上蔡县| 克什克腾旗| 麻城市| 四子王旗| 山西省| 桃源县| 白山市| 光山县| 通道| 如皋市| 綦江县| 城固县| 富锦市| 桐柏县| 石屏县| 新晃| 乌兰察布市| 湛江市| 上思县| 渭南市| 萨迦县| 大足县| 晋江市| 农安县| 武山县|