Static import

Static Import

为了访问静态成员,必须要用它们来自的类来限定这些引用,例如:

double r = Math.cos(Math.PI * theta);

为了绕开这种写法,人们有时候将静态成员置入接口中并从那个接口继承。这不是一个好主意。事实上,这是一个非常坏的主意,有一个专门的名字:常量接口反模式。问题是使用另一个类的静态成员的类仅仅是一个实现细节。当一个类实现一个接口,它变成类的公共API。实现细节将不会渗入公共API。

static import结构允许不用从包含静态成员的类继承而对静态成员的非限定访问。代替的,程序写法如下:

import static java.lang.Math.PI;

或者集体导入:

import static java.lang.Math.*;

一旦静态成员导入了,他们就可以不用限定符来访问了:

double r = cos(PI * theta);

静态导入声明同普通的导入相似,普通导入声明从包中导入类,允许他们可以不用包限定符来访问,静态导入声明从类中导入静态成员,允许他们不用类限定符来访问。

什么时候该用静态导入呢?很难说!只有当你不用的话就要尝试声明常量的本地拷贝,或者滥用继承时使用它。换句话说,当你需要频繁的访问其它类的静态成员的时候使用它。如果过度使用静态导入功能,它将使得你的代码不可读和不可维护,污染你所导入的静态成员的命名空间。你代码的读者们(包括你)将不知道静态成员来自哪个类。从一个类中导入所有的静态成员可能对可读性非常有害。如果你只需要几个成员,那么将他们单独导入吧。使用正确的话,静态导入可以让你的代码变得更可读。

转载于:https://my.oschina.net/codefire/blog/374272

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值