从JDK5.0开始,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
例如,如果在源文件的顶部,添加一条指令:
import static java.lang.System.*;
那么就可以使用System类的静态方法和静态域,而不必加类名前缀:
out.println("Good morning majb!");
exit(0);
另外,还可以导入特性的方法和域:
import static java.lang.System.out;
实际上,是否有更多的程序员采用这种简写方式,似乎是一件值得怀疑的事情。这种编程形式无益于代码的清晰度。不过导入静态方法和导入静态域有两个实际的应用。
一:算术函数:如果对Math类使用静态导入,就可以采用更加自然的方式使用算术函数。例如:
sqrt(pow(x, 2), pow(y, 2));
看起来比
Math.sqrt(Math.pow(x, 2), Math.pow(y, 2));
清晰多了。
二:笨重的常量:如果需要使用大量有冗长名字的常量,就应该使用静态导入。例如:
if(d.get(DAY_OF_WEEK) == MONDAY)
看起来比
if(d.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY)
容易多了。
转