您的位置:首页 > 编程语言 > Java开发

java static import(静态导入)

2018-03-19 17:14 435 查看
20180304 java static import(静态导入)
一:
java会自动寻找java.lang里的包,无需动态导入该包,但不会自动导入java.lang子包里的类,如java.lang里的reflect包的method类。
使用方法:

import java.lang.reflect.Method;

//语法格式:import 需要导入类的全限定名称

class ImportDemo
{
  public static void main(String[] args)
  {
    Method a;

  }
}

二:
请看如下代码:
int[] arr = new int[]{2,1,3};
String ret = Arrays.toString(arr);
System.out.println(ret);

Arrays.sort(arr);

ret = Arrays.toString(arr);
在上述代码中,每次使用Arrays类中的静态方法,即使我们使用了import语句,但是每次都需要使用Arrays类名去调用静态方法。这样很麻烦。我们想将Arrays中的静态成员向我们这个类中的静态成员一样调用。

eg :
//这是演示静态导入
import static java.util.Arrays.sort;
/*
表示把java.util.Arrays类中的静态方法sort导入到StaticImportDemo类中。
*/

/*
语法规则:
import static 类的全限定名该类中的static成员名
*/

class StaticImportDemo
{
  public static void main(String[] args)
  {
    int[] arr = new int[]{2,1,3};
    String ret = Arrays.toString(arr);
    System.out.println(ret);

    sort(arr);/*  省略Arrays.   */
    System.out.println("hello world!");
  }
}

静态导入也可以使用通配符 eg:
import static java.util.Arrays.*;

通过反编译工具查看代码可知,其实所谓的静态导入也是一个语法糖(编译器级别的新特性),在实际开发
中,我们不使用静态导入。因为使用静态导入,我们分不清某一个静态方法或字段来源于哪一个类。
在Eclipse工具中,当我们格式化代码时,就自动取消了所有的静态导入,变成使用类名调用,所以我们只要知道有这个静态导入的东西就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: