JAVA静态导入(inport static)详解
2024-09-29 08:38:59
在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));
- }
- }
两个类都产生相同的输出:
- 2147483647
- 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方法上进行静态导入。
最新文章
- ASP.NET Core 之 Identity 入门(一)
- Python多进程(2)——mmap模块与mmap对象
- 基于数据库MySQL的简易学生信息管理系统
- 【转】java调用webservice
- location(未完)
- APP 接口开发及读取静态缓存
- CF 486D vailid set 树形DP
- Android实现Http协议案例
- codevs 1709 钉子和小球
- CodeForces 333A
- sublime text 按下Ctrl + B 显示空白的解决办法
- ROS_Kinetic_16 ubuntu中安装使用Matlab和ROS
- 菜鸟如何反转到资深Web安全工程师
- python关于二分查找
- <;二>;企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库
- iphoneX适配!!!
- Oracle 19c使用dbca来搭建物理DG
- SpringSecurity-SecurityContextPersistenceFilter的作用
- javascript——获取列表选择行的列值
- 【转】一些linux基础命令
热门文章
- POCO库中文编程参考指南(5)Poco::Net::SocketAddress
- c/c++相关面试准备笔记1
- cordova学习:事件Events
- Centos7下zabbix部署(五)定义报警媒介-微信
- ios unit test 工程选择release时候报错Undefined symbols for architecture i386
- selenium 自动化测试 测试报告 生成
- Tomcat7.0源代码分析——启动与停止服务原理
- Scala和Java二种方式实战Spark Streaming开发
- 通过脚本发送zabbix微信报警
- 【ecshop---新增包邮卡功能】