静态导入
项目开发时经常碰到这样的情况,我们需要使用一个或多个类的静态方法或静态变量。都知道,在使用静态方法或变量时,需要添加其所属的类名前缀,非常麻烦。静态导入语句提供了一种简洁访问静态变量或静态方法(即调用静态方法或使用静态成员变量时,不用添加其类名前缀。也就是说,静态导入能使静态方法或静态变量在当前类中直接可见)的导入方式。
下面我们以常用的工具类Math对比一下使用静态导入的效果。
Math中定义了好多静态方法或变量,如:
public static final double PI = 3.141592653589793;
public static double cos(double a){
...
}
传统方式中,我们要在另一个类中使用这些静态对象,需要这样写:
//类前导入使用的类
import java.lang.Math;
...
//类中的一条语句
double r = Math.cos(Math.PI * theta);
使用静态导入后,我们可以这样写:
//类前导入使用的类
import static java.lang.Math.*;
...
//发现没,调用Math的静态方法或静态变量不要加Math(类前缀)了!
double r = cos(PI * theta);
静态导入语法:
//导入类的所有成员
import static 包名.类名.*;
//导入要用的类的静态成员
import static 包名.类名.具体静态成员;
//例如:
import static java.lang.Math.*;
import static java.lang.Math.PI;
总结
- 静态导入就是简化使用类的静态成员的代码。
- 实现静态导入的方法就是在 导入语句import 后加个static 关键字。
- 使用静态导入的便利方式就是使用导入类的静态成员不用加类前缀。
注意
使用静态导入可以简化代码,但过度使用会降低代码可读性和可维护性。因为维护人员不知道那个类定义了这个静态成员,也与类的普遍使用方式不符。