为了账号安全,请及时绑定邮箱和手机立即绑定

“导入”之后的“静态”修饰语是什么意思?

“导入”之后的“静态”修饰语是什么意思?

墨色风雨 2019-07-22 10:43:07
“导入”之后的“静态”修饰语是什么意思?像这样使用时:import static com.showboy.Myclass;public class Anotherclass{}有什么区别import static com.showboy.Myclass和import com.showboy.Myclass?
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

静态导入声明类似于正常的导入声明。如果正常导入声明从包导入类,允许在没有包限定的情况下使用这些类,则静态导入声明从类中导入静态成员,允许在没有类限定的情况下使用它们。

那么什么时候应该使用静态导入呢?非常谨慎!只有当您不想声明常量的本地副本或滥用继承(常量接口反模式)时才使用它。换句话说,当您需要经常访问一个或两个类的静态成员时,请使用它。如果您过度使用静态导入功能,它可能会使您的程序不可读和不可维护,从而使用您导入的所有静态成员污染它的命名空间。您的代码的读者(包括您,在您编写代码几个月后)将不知道静态成员来自哪个类。从类中导入所有静态成员对可读性特别有害;如果只需要一个或两个成员,则单独导入它们。如果使用得当,静态导入可以通过删除类名重复的样板来提高程序的可读性。


查看完整回答
反对 回复 2019-07-22
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您所述的这两种进口产品之间没有差别。但是,您可以使用静态导入来允许对其他类的静态成员进行不限定的访问。在我以前不得不这样做的地方:

import org.apache.commons.lang.StringUtils;
      .
      .
      .if (StringUtils.isBlank(aString)) {
      .
      .
      .

我能做到:

import static org.apache.commons.lang.StringUtils.isBlank;
      .
      .
      .if (isBlank(aString)) {
      .
      .
      .


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 522 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信