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]
雖然能編譯通過,但是卻很容易混繞讀者視線。
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