转载请注明来自:黄朝辉的博客
1.前言
“Static import ”是Java语言的一种特性,可以让一个类中以public static
定义的成员(公有静态成员和公有静态方法)在Java代码中使用而无需指定该成员所在的类。
2.一个小例子
下面是一个简单的例子。
package cn.sehzh;
public class Main {
public static void main(String[] args) {
System.out.println("Considering a circle with a diameter of 5 cm, it has:");
System.out.println("A circumference of " + (Math.PI * 5) + " cm");
System.out.println("And an area of " + (Math.PI * Math.pow(2.5,2)) + " sq. cm");
}
}
可以被写为:
package cn.sehzh;
import static java.lang.Math.*;
import static java.lang.System.out;
public class Main {
public static void main(String[] args) {
out.println("Considering a circle with a diameter of 5 cm, it has:");
out.println("A circumference of " + (PI * 5) + " cm");
out.println("And an area of " + (PI * pow(2.5,2)) + " sq. cm");
}
}
通过static import,无需指定out.println
前的System
和PI
前的Math
。
3.注意
如果从不同类中导入的成员中有两个同名的成员,编译器是会报错的。
下面的例子就很好的说明了这个问题。
package cn.sehzh;
import static java.lang.Integer.*;
import static java.lang.Long.*;
public class Main {
public static void main(String[] args) {
System.out.println(MAX_VALUE);
}
}
错误指示如下:
The field MAX_VALUE is ambiguous