没有比人更高的山

Java中的静态导入:import static

静态导入是JDK1.5里面的新的特性

一般我们常写
import java.util.*;
意思是导入util包下的所有类,然后使用下面的语句用sort对alist进行排序。
Collections.sort(alist);

在jdk1.5中,我们可以写
import static java.util.Collections.*;
意思是导入Collections类的所有静态方法(注意只是静态方法),这样我们可以使用下面的语句达到同样的效果:
sort(alist);

读到这里,可能很多人就要想了,System.out.println(”");应该也可以写简单一点吧(我开始也是这么想的)。不好意思,呵呵,println是out的实例方法,非静态方法,不能用上面的简写的。

但是可以用一种变通的方法,自己实现一个静态的println,然后调用这个就行了。

import的作用就是告诉编译器,当你遇到无法解析的名字时,去某个路径找。所以当编译器遇到sort后,就在java.util.Collections下找到了sort这个名字(函数签名),然后再找是否有匹配的函数。结果以下的奇怪东西就有意思了:
import static java.util.Arrays.sort;
import static java.util.Collections.sort;
两个sort毫无冲突,因为这两个类没有相同的sort函数(函数签名不一样),邻里融洽。

其实这种方法真是很无奈。

VN:F [1.7.5_995]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.5_995]
Rating: 0 (from 0 votes)

3 条评论 »

  1. 终于换博客了!^_^

    UN:F [1.7.5_995]
    Rating: 0.0/5 (0 votes cast)
    UN:F [1.7.5_995]
    Rating: 0 (from 0 votes)

    [回复]

    周亮 回复:

    是啊,我靠,还是要钱的好,以后要多挣钱啊

    UN:F [1.7.5_995]
    Rating: 0.0/5 (0 votes cast)
    UN:F [1.7.5_995]
    Rating: 0 (from 0 votes)

    [回复]

    ooaixt 回复:

    多搞几个CT

    UN:F [1.7.5_995]
    Rating: 0.0/5 (0 votes cast)
    UN:F [1.7.5_995]
    Rating: 0 (from 0 votes)

    [回复]

    评论 由 ooaixt — 2009年11月15日 #

发表评论:

Switch to our mobile site