1、import static 和 import
import: 导入包下面的指定的类或接口, 不会自动导入子包内的类容。
import static: 从JDK1.5开始提供了静态导入的功能, 可以导入类下的静态方法、静态属性、内部类、枚举等。
比如声明以下Test类:
package a;
public class Test{
public static final int a = 1;
public static class Test2{
public static final long level = 1000;
}
}
1)使用import导入:
package b;
import a.*;
public class Main{
public static void main(String[] args){
System.out.prrintln(Test.a); // ok
System.out.println(Test2.level); // 错误, 不能这样导入
System.out.println(Test.Test2.level); //正确导入方式
}
}
如果有很多内部类或枚举, 引用很麻烦, 都必须Test.*.*。
2) 使用import static
package b;
import static a.Test.*;
public class Main {
public static void main(String[] args) {
System.out.println(a);
System.out.println(Test2.level);
}
}
可以看到import static 不需要每次都引入前缀。
import static 的缺点:
- 代码难以阅读, 很多静态引入变量, 不知道来源与哪个类。
- 编译错误, 同时静态引入多个类, 如Integer和Long, 如果存在同名静态变量, 就会产生编译错误, 如MAX_VALUE。
网友评论