Java静态导入

锦通  金牌会员 | 2023-9-18 05:12:28 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

今天在看开源项目的时候发现了这样一句代码
  1. import static com.abin.mallchat.common.common.service.frequencycontrol.FrequencyControlStrategyFactory.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;
复制代码
我虽然工作了有三年时间了,但是这样的代码还是第一次看见,看见的第一反应我以为是jdk1.8之后出的一个新特性,查阅发现这是在1.5之后增加的一个语句,叫做“静态导入”。不知道是忘记还是一开始学习的时候没注意到这块,现在来弥补一下空缺吧。
Java import static静态导入是JDK 1.5 之后增加了一种静态导入的语法,用于导入指定类的某个静态成员变量、方法或全部的静态成员变量、方法。如果一个类中的方法全部是使用 static 声明的静态方法,则在导入时就可以直接使用 import static 的方式导入。
语法格式如下:
  1. import static package.ClassName.fieldName|methodName;
复制代码
上面语法导入 package.ClassName 类中名为 fieldName 的静态成员变量或者名为 methodName 的静态方法。例如,可以使用import static java.lang.System.out;语句来导入 java.lang.System 类的 out 静态成员变量。
导入指定类的全部静态成员变量、方法的语法格式如下:
  1. import static package.ClassName.*;
复制代码
上面语法中的星号只能代表静态成员变量或方法名。
import static语句要放在package之后,类定义之前,即放在与普通 import 语句相同的位置,而且 import 语句和 import static 语句之间没有任何顺序要求。
使用 import static 可以省略类名
下面程序使用 import static 语句来导入 java.lang.System 类下的全部静态成员变量,从而可以将程序简化成如下形式。
  1. import static java.lang.System.*;
  2. import static java.lang.Math.*;
  3. public class StaticImportTest {
  4.     public static void main(String[] args) {
  5.         // out是java.lang.System类的静态成员变量,代表标准输出
  6.         // PI是java.lang.Math类的静态成员变量,表示π常量
  7.         out.println(PI);
  8.         // 直接调用Math类的sqrt静态方法,返回256的正平方根
  9.         out.println(sqrt(256));
  10.     }
  11. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表