在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。
当你想使用static成员时,可以使 用静态导入(在API中的类和你自己的类上,都可以使用该特性)。下面是静态导入前后的代码实例:
在静态导入之前:
public class TestStatic {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.toHexString(42 ));
}
}
在静态导入之后:
import static java.lang.System.out;
import static java.lang.Integer.*;
public class TestStaticImport {
public static void main(String[] args) {
out.println(MAX_VALUE);
out.println(toHexString(42 ));
}
}
两个类都产生相同的输出:
1. 2147483647
2. 2a
让我们看一下使用静态导入特性的代码中将发生什么:
1、虽然该特性通常称为“静态导入”,但语法必须是import static,后面跟你想导入的static成员的完全限定名称,或者通配符。在本例中,我们在System类的out对象上进行静态导入。
2、在本例中,我们可能想使用java.lang.Integer类的几个static成员。该静态导入语句使用通配符来表达“我想在此类中的所有静态成员上进行静态导入”。
3、现在我们终于看到静态导入特性的好处!我们不必在System.out.println中键入System。太好了!另外,我们不必在Integer.MAX_VALUE中键入Integer。因此,在这行代码中,我们能够将快捷方式用于静态方法和一个常量。
4、最后,我们进行更多的快捷操作,这次针对Integer类的方法。
关于该特性,我们已经有点儿讽刺意味儿了,但不仅我们是这样的。我们不认为节省少量的击键次数会让代码难于阅读一点,但许多开发人员要求将它添加到语言中。
下面是使用静态导入的几条原则:
* 你必须说import static, 不能说static import。
* 提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。
* 你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。
转载:http://www.java3z.com/cwbwebhome/article/article2/21168.html
分享到:
相关推荐
Java包的静态导入import static和import的区别
java技术:java中static作用详解
浅析Java中静态块与静态方法的区别与联系,执行顺序。
title: Java静态方法[Static] date: 2020-03-24 17:45:16 author: JF blog:https://www.huqifa.com/ tags: – Java categories: – Java Java静态方法[Static] static关键字 作用:是一个修饰符,用于修饰成员...
主要介绍了Java静态static关键字原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
jsp中include指令静态导入和动态导入的区别详解.docx
从JDK5.0之后,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。例如,如果在源文件的顶部,添加一条指令: Java代码 import java.lang.System.*; 那么就可以使用System类的静态方法和...
视频教程,介绍java的静态导入方法,还介绍了JAVA的编译器的语法设置。
短小精悍,关于静态导入的源代码,可以用作编程参照!
21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块.zip21.java静态块...
java中有的不需要与后台联动,只需开发静态页面,改资料提供了样板案例,并附有代码,方便调试,只需在原有基础上开发,修改
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
建议通过阅读相关的Java教材或搜索资料,进一步扩展学习与static关键字相关的高级主题,如静态代码块、静态内部类和静态导入等内容。 如有疑问,可以参考Java官方文档或向技术论坛寻求帮助,进一步加深对static...
Java static修饰初始块。初级代码,仅供参考学习。
Java静态分析Java代码检查.docx
JAVA静态代理和动态代理
MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值
Java中的代理是一种常见的设计模式,它可以帮助我们在不改变原有代码逻辑的情况下,对现有对象进行增强或扩展。在代理模式中,主要有两种类型:静态代理和动态代理。 1.静态代理: 静态代理是指在编译期间就已经确定...
java整站静态生成方案一 实例工程源码java整站静态生成方案一 实例工程源码java整站静态生成方案一 实例工程源码java整站静态生成方案一 实例工程源码java整站静态生成方案一 实例工程源码java整站静态生成方案一 ...
15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部类(相当于外部类).zip15.java静态内部...