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函数(函数签名不一样),邻里融洽。

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

你可能对下面的文章感兴趣

  1. Eclipse JFace Binding/绑定 (1)

3 thoughts on “Java中的静态导入:import static

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">