java中的静态导入与实例|静态导入与正常导入的区别

776 阅读3分钟

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包中的SystemMath 类。
  • 在java程序中,我们不需要导入任何java.lang 包,因为每个程序默认导入的包是java.lang 包。
  • 为我们这个教程的目的,导入了java.lang

静态导入示例

现在我们将看到静态导入功能的例子

我们可以使用java.lang.Systemjava.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 importstatic import 的基本区别是正常导入可以使用包中的类名来调用成员变量。
static import 可以定义静态成员字段,不能引用任何类名,可以不使用类名直接使用。

静态导入普通导入
可读性很好代码干净
没有性能改进没有性能改进
只适用于静态成员适用于所有类型

结语

总而言之,在java 1.5版本中学习了静态导入功能,这种新的语法允许开发者提高代码的可读性和简洁性。

同时也记录了它的优点和缺点,与普通的导入例子进行比较