`
huzhenyu
  • 浏览: 191882 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVA静态导入(inport static)详解

    博客分类:
  • JAVA
阅读更多
在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方法上进行静态导入。
分享到:
评论
1 楼 hanmiao 2011-09-23  
静态导入特性出现了接近四年时间,今天才开始了解,看来我真是太落后了。

相关推荐

    Java表格数据导出Excel&Excel数据导入到数据库

    `Inport.java`文件可能是处理Excel数据导入的部分。首先,需要读取Excel文件,这同样可以通过`Apache POI`库完成。然后,逐行解析数据,将每一行的数据映射到数据库表的字段。这个过程中可能涉及数据验证、异常处理...

    db2 export和inport命令相关

    DB2 数据库管理系统提供了多种数据移动方式,其中包括数据的导入(Import)、导出(Export)和装入(Load)。在本文中,我们将详细介绍 DB2 中的数据移动命令,包括 Export 和 Import 命令的使用、文件格式的介绍...

    批量修改simulink模型Inport端口方法

    Matlab/simulink会遇到批量修改模型中变量以及端口的问题,本脚本实现修改simulink模型当前层Inport端口为From。

    ADS版图和HFSS之间相互导入的方法.docx

    打开 HFSS 新建工程和设计后,单击 Modeler--->inport 将上面导出的 gds 文件导入。导入后会出现如下所示的界面。 中间栏中的 Signal+数字代表的是 ADS 版图其中一层存在的物体。数字对应的具体是哪一层需要在 ADS ...

    Simulink模型导入Veristand

    3. **Veristand Inport和Outport块**:对于想要在桌面计算机上运行而无需编译的Simulink模型,必须使用Veristand Inport和Outport块使输入和输出端口在Veristand中可用。 4. **模型参数设置**: - 设置Solver选项:...

    ConsoleImporter从Chrome控制台轻松导入JS和CSS资源

    "ConsoleImporter"是一个非常实用的工具,它使得从Chrome控制台直接导入JS和CSS资源变得异常简单,极大地优化了前端开发的工作流程。 "Console Importer"的核心功能是将外部的JS和CSS文件快速引入到当前页面,这样...

    基于Java实现的商品仓库、销售管理系统源码+项目说明+数据库.zip

    基于Java实现的商品仓库、销售管理系统...[](static/images/inport.PNG) 商品退货管理 ![](static/images/output.PNG) 商品销售管理 ![](static/images/sales.PNG) 商品销售退货管理 ![](static/images/salesback.PNG)

    zabbix_import_hosts:zabbix批量导入监控主机

    zabbix批量导入监控主机 用途 从excel表中批量导入被监控主机 自动根据分组名称创建分组 根据模板名称匹配主机监控模板 使用前提 程序需要使用pyzabbix xlrd requests三个库 pip install xlrd pip install requests ...

    基于集成配置文件的模型软件自动集成和动静态校验方法与流程.docx

    - 根据输入接口变量的来源决定是否添加InPort模块。 - 对于来自集成模型内部的输入接口变量,还需要判断其来源子函数的执行顺序,并根据情况添加From或Delay模块。 - **创建信号目标的具体步骤**: - 获取集成...

    Import list of user agent swicher 2014-02-15 更新

    useragentswicher 更新至2014-02-15日为止... 导入这个列表吧,包括了目前主流的浏览器标识 使用方法 先安装好,重启火狐浏览器之后,打开菜单栏“工具”“Dafault User Agent”“Edit User Agents”“Import…”导入

    wincc TAG Export Import工具使用方法.docx

    《WinCC TAG Export/Import工具使用详解》 在西门子的WinCC 6.2版本中,TAG Export/Import工具是一个非常实用的功能,它允许用户方便地导入和导出项目中的变量,大大提高了工作效率。下面,我们将详细介绍该工具的...

    Runtime Audio Importer

    对于那些希望能够在运行时将MP3,WAV和FLAC格式的音频文件导入游戏的人来说,此插件将非常有用(例如,如果游戏涉及从播放器的设备内存中导入音频文件)。 在C ++和Blueprints中都易于使用。 产品特点 较小的资料库...

    VB Import Viewer

    VB Import Viewer是一款专为Visual Basic(VB)开发者设计的实用工具,它允许用户查看VB程序集(.dll或.exe文件)中导入的API函数。这个工具对于理解和调试使用API调用的VB应用程序非常有帮助,因为API函数通常不...

    userport,非常好用的免费端口读写驱动

    "UserPort"是一个非常实用的免费端口读写驱动,它提供了多种编程语言的例程,包括C、Delphi、Java、Pascal和VB,使得开发者能够轻松地在不同的编程环境中实现对端口的操作。 首先,我们来了解什么是端口。在计算机...

    UDP接收和转发.zip

    在这个场景中,程序会监听特定的端口(inport:8888),当接收到数据时,它会将这些数据转发到另一个地址和端口(outip:127.0.0.1, outport:7777)。127.0.0.1是回送地址,表示本机,而7777和8888分别是输入和输出的...

    golang开启mod后import报红解决

    当遇到在启用`go mod`后导入包出现红色错误提示时,这通常意味着项目配置或模块初始化存在问题。以下是一些详细的步骤和知识点来解决这个问题: 1. **理解go mod**: `go mod`引入是为了替代之前的`GOPATH`工作区...

    关联fpgrowth

    You can install the package with pip: pip install pyfpgrowth Then, to use it in a project, inport it and use the find_frequent_patterns and generate_association_rules functions:

    ps常用毛发笔刷 人物头发笔刷

    ps常用毛发笔刷,下载就能用,abr文件inport导入就可以使用的笔刷,有动物毛发,人物头发笔刷。

    IO端口读写(BCB).rar_C++builder _bcb_bcb 图像_c builder_io

    在IT领域,C++Builder是一款强大的集成开发环境(IDE),专为C++编程设计,尤其在Windows平台上构建桌面应用程序方面表现出色。C++Builder集成了RAD(Rapid Application Development)工具,使得开发者能够快速地...

    unity游戏demo

    unity游戏demo

Global site tag (gtag.js) - Google Analytics