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

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

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

料青山看我应如是 2019-07-26 17:14:04
“导入”之后的“静态”修饰语是什么意思?像这样使用时:import static com.showboy.Myclass;public class Anotherclass{}有什么区别import static com.showboy.Myclass和import com.showboy.Myclass?
查看完整描述

3 回答

?
慕虎7371278

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

看见文献资料

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

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



查看完整回答
反对 回复 2019-07-27
?
慕哥9229398

TA贡献1877条经验 获得超6个赞


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

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

我能做到:

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

您可以在文献资料.




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

添加回答

举报

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