java静态导入--导入你需要的静态成员
在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。
当你想使用static成员时,可以使用静态导入(在API中的类和你自己的类上,都可以使用该特性)。下面是静态导入前后的代码实例:
在静态导入之前:
1. public class TestStatic {
2. public static void main(String[] args) {
3. System.out.println(Integer.MAX_VALUE);
4. System.out.println(Integer.toHexString(42));
5. }
6. }
在静态导入之后:
1. import static java.lang.System.out;
2. import static java.lang.Integer.*;
3.
4. public class TestStaticImport {
5. public static void main(String[] args) {
6. out.println(MAX_VALUE);
7. out.println(toHexString(42));
8. }
9. }
两个类都产生相同的输出:
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方法上进行静态导入。
分享到:
相关推荐
在Java编程语言中,静态导入(static import)是一种特殊的导入方式,它允许程序员直接使用类中的静态成员,而无需每次都指定类名。这种特性在2004年发布的Java 5.0版本中引入,目的是为了提高代码的可读性和简洁性...
在Java 5中,静态导入允许开发者在不指定类名的情况下直接使用类中的静态成员,如静态变量和静态方法。这使得代码更加紧凑,但也可能导致命名冲突,因此了解如何正确使用和管理静态导入至关重要。 首先,我们来看...
例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不知道你在引用哪个MAX_VALUE。 3. 只能在static对象引用、常量(记住,...
本文将详细介绍如何导入静态变量,并深入探讨集合类的使用方法及其实例。 #### 一、静态变量的导入 静态变量(也称为类变量)是在类的生命周期内共享的所有对象的值,即所有对象共用同一份数据。通过`static`...
7. **接口的私有方法和静态方法**:Java 8允许在接口中定义私有方法和静态方法,这增强了接口的功能,并且可以在不违反单个实现原则的情况下,提供一些辅助功能。 8. **并行收集器与并行流**:Java 8的并发库引入了...
1. **静态导入(Static Import)**:在Java 5中引入的静态导入允许开发者直接引用类的静态成员,而无需指定类名。以前,我们需要写`Math.random()`,现在可以通过`import static java.lang.Math.random;`,然后直接...
由于Java版的WebDAVServer无需额外依赖,因此开发者可以方便地将其导入Eclipse这样的集成开发环境并快速启动。这使得它成为开发和测试WebDAV应用的理想选择。它的精简设计意味着它可能具有较低的系统资源占用和较快...
7. **静态导入(Static Import)**:允许将类的静态成员导入到作用域中,避免了使用类名来调用静态成员的繁琐。 8. **遍历路径枚举(Iterable Interface)**:使任何实现了`Iterable`接口的类都可以被foreach循环...
通过这个项目实例,开发者可以学习到如何在Java中使用jxl库高效地处理Excel数据,从而在业务应用中实现数据导入导出、报表生成等功能。同时,也可以根据需求扩展这些基础示例,实现更复杂的功能,比如处理公式、图表...
之后,你可以导入`java`模块来开始与Java代码的交互。例如: ```python from javabridge import start_vm, kill_vm, java # 启动JVM start_vm(class_path=["path_to_your_java_class_files"]) # 实例化Java...
8. 引用和导入:Java的包和类引用需转换为Python的模块导入机制,例如import语句。 9. 多线程:Java的多线程模型(Thread类)与Python的多线程(threading模块)有差异,转换时需要考虑线程安全和并发控制。 10. ...
首先,我们需要理解静态导入与动态导入的区别。在Android中,动态导入通常通过System.loadLibrary()方法完成,而静态导入则是在AndroidManifest.xml中声明,使得应用启动时自动加载。静态导入的优势在于,即使未在...
在源码文件结构方面,文件中应该包含许可信息、包声明、导包声明和禁止静态导入类。格式要求中,括号的使用、缩进、语句长度、换行和空白等都有着明确的规定,比如推荐使用两个空格进行缩进,每行代码的字符数限制在...
在实际应用中,首先,你需要导入这个库到你的Java项目中,然后创建ONVIF客户端对象,连接到你的摄像机。接着,你可以调用相应的方法来执行上述任务。例如,你可以使用`DeviceService`类来获取设备信息,使用`...
CoreJava DAY10 主方法,静态导入,包装类,枚举 32 CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 ...
在Java中,如果你需要在Word文档中插入图片,POI库提供了解决方案。这个过程涉及到对Word文档的内部结构有深入的理解,包括其XML表示形式,以及如何通过API来操作这些元素。 首先,我们需要导入必要的库,包括POI的...
- **静态导入**:允许直接访问静态成员而无需前缀。 - **注解**:用于向编译器或工具提供元数据。 - **并发工具包**:包括了新的并发类,如`Executor`框架、`ConcurrentHashMap`等,使得编写多线程程序更加容易。...
Java中的静态导入机制是自Java 5版本引入的一项特性,旨在简化代码,特别是当频繁使用某个类的静态成员时。在传统的Java编程中,如果我们要引用一个类的静态成员,需要通过类名来限定,例如`ClassName.staticMember`...
- **java.lang**: 这是最基础的包,包含所有Java程序都自动导入的基本类型和对象,如`String`、`Object`、`System`等。 - **java.io**: 提供了文件I/O操作的类,如`File`、`InputStream`、`OutputStream`、`Reader...
Java编程语言在处理数据时,经常需要与Excel文件进行交互,无论是从Excel中导入数据,还是将处理后的结果导出到Excel。在这个场景下,`jxls`库扮演了重要的角色。`jxls`是一个开源项目,它为Java开发者提供了一种...