02.java的静态导入
1.JAVA中的静态导入
1.使用方法
package tips;
public interface Constants {
public static final int PORT_NUMBER = 90;
public static final String APP_NAME = "DOOLY";
public static class StaticNestedClass {}//子类
}
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。 例如:
import static tips.Constants.*;
public class StaticImportTip {
public static void main(String []args) {
System.out.println(PORT_NUMBER);
System.out.println(APP_NAME);
System.out.println(StaticNestedClass.class);
}
}
2.注意事项
假如你决定使用静态导入特性,推荐单独地导入常量名,而不要使用通配符。因为这样做可以让人知道常量的来源。
比如说在下面的代码片断中,一个开发人员查看了代码之后不知道DEFAULT_URL 和PORT_NUMBER从哪个类中导入的。
import static tips.Constants.*;//注意是完全路径
import static tips.gen.App.*;
public class StaticImportTip {
public static void main(String []args) {
System.out.println(PORT_NUMBER);
System.out.println(DEFAULT_URL);
}
}
假如导入语句如下:
import static tips.Constants.PORT_NUMBER;
import static tips.gen.App.DEFAULT_URL;
那么常量的来源就很明显了。
另外,
● 针对一个给定的包,不可能用一行语句静态地导入所有类的所有类方法和类变量。也就是说,您不能这样编写代码:
import static java.lang.*; // this does not compile!
● 如果一个本地方法,和一个静态导入的方法有着相同的名字,那么本地方法被调用。
谨慎地使用静态导入。因为静态导入使得类方法和类变量的定义位置变得模糊,所以加大了理解代码的难度。使用静态导入的原则是:限制静态导入的使用,不要在应用程序中普遍使用静态导入。
3.为什么要用静态导入,后果会怎样,好处又是什么?
静态导入使您不 用提供类名,这样做可以偷点儿懒,但也引入了不必要的混淆。正如 createDate 在何处定义这个问题。如果您正在编写的某个类,需要调用多个外部类方法(可能几十个甚至更多),这样您或许有了使用静态导入的借口。但是,更好的方法是,弄明白为什么需要这么多的静态调用,或许您需要重新审视类的设计。
使用静态导入的可能理由之一是:简化对多个类常量的调用,而且这些类常量定义在一个地方。假设您创建了多个报表类,而且每个报表类都需要将换行符追加到输出,所以每个报表类都需要用到常 量 NEWLINE , 就像RosterReporter 中的定义:
static final String NEWLINE = System.getProperty("line.separator");
您不会希望在每个报表类中都重复定义这个常量。所以您可以创建一个新类,这个类的职责就是为了持有常量。稍后,它也可以持有别的常量,例如对任何报表类都适用的页面宽度。
02.java的静态导入相关推荐
- Java中静态导入(传智播客毕老师视频讲解)
StaticImport 静态导入. 当类名重名时,需要指定具体的包名. 当方法重名是,指定具备所属的对象或者类. import java.util.*; import static java.ut ...
- Java的String.format可以静态导入
JDK-8203630 ["为String :: format添加等效的实例方法"]假定"将String :: format实现为静态的参数似乎是可以静态导入 forma ...
- java静态导入_Java中越来越多地接受静态导入吗?
java静态导入 曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,在那个时候(也许直到今天),很多人确实(也确实)不认为这不是一个真实的词 ...
- Java是否越来越接受静态导入?
曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,那时(也许直到今天),许多人确实(也确实)认为不是一个真实的词. 尽管这个词并没有 引起争 ...
- Java中有些好的特性(一):静态导入
首先,请原谅我用了一个很土,很有争议的标题.小弟才思枯竭,实在想不出来什么文雅的了,抱歉~~ 前言 换了东家后,从一个死忠C# Fans摇身一变,客串了一把Java程序员,可能是受老赵的<Why ...
- Java学习第七课...枚举.自动装箱.静态导入...-asp.net关注
枚举使用enum这个关键字: enum Transport {CAR,TRUCK,AIRPLANE,TRAIN,BOAT} 虽然是对象,但是不能使用new... 声明一个枚举类型的变量: Transp ...
- (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入
-- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...
- java 16 -12 静态导入
静态导入: 格式:import static 包名-.类名.方法名; 可以直接导入到方法的级别 静态导入的注意事项: A:方法必须是静态的 B:如果有多个同名的静态方法,容易不知道使用谁?这个时候要使 ...
- Java中的包,类的导入,静态导入
包的作用 1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离. 2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突. Sun公司推荐程序员使用公司域名的反向字符作为公司 ...
最新文章
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(五)
- 贝索斯:亚马逊正探讨人脸识别如何监管
- Delphi的四舍五入函数
- iqooz1手机能搭载鸿蒙吗,我最近看中2款手机,iQOOZ1x和荣耀30青春版选谁更好?你们知道吗...
- Effectice Java之始终覆盖toString(十)
- SQL入门(3):定义约束/断言assertion/触发器trigger
- 关于IIS 7.5 限制连接数与流量限制模块
- iOSQuart2D绘图之UIImage简单使用
- 记录几条简单的正则表达式
- STL---常用函数用法大集合-=-更新中...
- 营销管理手册_某连锁动物医院营销管理咨询项目方案成功汇报
- C陷阱与缺陷阅读笔记(上)
- matlab mosek安装
- 出租车计费程序php,出租车计价器VHDL程序
- 2021阿里巴巴国际站产品关键词来源(一)
- Python给excel加密(linux可用版)
- 机器学习6:——Pandas——6:高级处理3:数据合并
- 什么是手机号码姓名实名认证 手机号码查姓名 手机号实名认证API
- PS查看设计图中文字大小,颜色
- sa结构组网方式_5G SA网络架构及组网规范