我们知道在写java类的时候通常需要导入需要的包,例如“import java.util.ArrayList”。实际上也可以不导包而在使用的使用直接写上类的完整路径,如“java.util.ArrayList al = new java.util.ArrayList();”,但这样写的话语句太长了并且影响代码的阅读性。所以,import导包可以很好的解决这两个问题。
在开发中,有时候会调用一些静态方法,这时需要用到“class.staticMethod()”这样的方式来调用,能不能像上述问题那样在类的前面导入这个"class",然后在代码中直接使用"staticMethod()"呢?
实际上是可以的!JDK1.5版本以后添加了静态导入,看下面的写法:
import static java.lang.System.*;
public class Main {
public static void main(String []args){
out.println("Hello, world");
}
}
我们可以发现,这个写法“out.println("Hello, world")”同样可以打印“Hello, world”语句。这是因为我们事先(在第一行)导入了System类下的所有静态变量和静态方法,因此在使用的时候在需要写"System."的地方可以省略。
再来看看静态导入和一般导入的写法的不同之处:
☆) 和一般导入相比,静态导入时 import 后面要写"static" 关键字
类似的能使用到静态的导入的地方有Math、Collections、Arrays等等。