java 5中的静态导入
静态导入是java语言在第5版中引入的功能,别名为tiger 版本。
它的出现是为了简化对静态变量和静态成员的访问,而无需使用类名。
在引入static import 之前,我们对每个java类都有正常的导入语句,以使用类名来使用这些方法和类。下面是一个List类的正常导入的例子
在引入静态导入功能之前,java代码是什么样子的?
通常在java编码中,如果我们想在代码中使用任何static 成员变量或一个类的方法,
,我们必须首先使用正常的import 关键字导入该类,然后我们必须在代码中使用带有类名的变量/方法(例如Math.E))。
下面是正常导入使用的例子,使用合格的类名访问成员变量。
import java.lang.\*;
public class ImportDemo {
public static void main(String args\[\]) {
System.out.println("This is sample program without using static import functionality" + Math.E);
}
}
在上面的程序中:
- 我们使用了java.lang包中的
System和Math类。 - 在java程序中,我们不需要导入任何
java.lang包,因为每个程序默认导入的包是java.lang包。 - 为我们这个教程的目的,导入了
java.lang包
静态导入示例
现在我们将看到静态导入功能的例子
我们可以使用java.lang.System 和java.lang.Math 类中的静态成员变量,而不用限定类名。
import static java.lang.System.\*;
import static java.lang.Math.\*;
public class ImportDemo {
public static void main(String args\[\]) {
out.println("This is sample program without using static import functionality" + E);
}
}
为了在java.lang 包中的数学类中使用静态成员变量E ,我们通过添加静态导入的方式进行编码,比如导入静态java.lang.Math.*; 或java.lang.Math.E。
在静态导入声明中为每个静态成员(Math.E)而不是所有的静态成员(Math.*)下定义总是好主意。
静态导入的优点
它允许我们在代码中不使用类名来调用静态成员。
通过静态导入代码声明,该类的所有静态成员都可用于声明的java类。
静态导入可以用于静态成员变量以及静态成员,而无需在java代码中引用类名。
它简化了常量代码的可读性。
静态导入的缺点
如果我们在同一个类中从不同的类中导入两个相同的静态常量,那么编译器就有可能产生歧义,从而导致错误。
静态导入和普通导入的区别是什么?
normal import 和static import 的基本区别是正常导入可以使用包中的类名来调用成员变量。
static import 可以定义静态成员字段,不能引用任何类名,可以不使用类名直接使用。
| 静态导入 | 普通导入 |
|---|---|
| 可读性很好 | 代码干净 |
| 没有性能改进 | 没有性能改进 |
| 只适用于静态成员 | 适用于所有类型 |
结语
总而言之,在java 1.5版本中学习了静态导入功能,这种新的语法允许开发者提高代码的可读性和简洁性。
同时也记录了它的优点和缺点,与普通的导入例子进行比较