静态导入只把某个类中的静态方法import,然后再此类文件中引用此类的静态方法就可以直接使用,代码举例:
import java.util.*; import static java.util.Arrays.*; //此处是静态导入 class Test { public static void main(String[] args) { int[] a = {1, 2, 3}; sort(a); int index = binarySearch(a, 1); System.out.println(Arrays.toString(a));//注意在此处的输出参数不能省略Arrays } }
问题:为什么在输出语句中无法省略类名?
因为Test是继承与Object的,Object中有个方法也是toString(),与Arrays中的方法重名,Object的优先级比Arrays要高,因此,不加类名调用时,虚拟机认为调用的是Object的类方法,因此会发生如下错误:
注意:
*当类重名的时候,要指明类是属于哪个包的
*当方法重名时,要指明是属于哪个类的(不包括重载,重载的方法都属于一个类)