当前位置: 首页 > 面试题库 >

Java“import”后面的“static”修饰符是什么意思?

邹宣
2023-03-14
问题内容

当这样使用时:

import static com.showboy.Myclass;

public class Anotherclass{}

import static com.showboy.Myclass和之间有什么区别import com.showboy.Myclass


问题答案:

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

那么什么时候应该使用静态导入?非常谨慎!仅当您打算以其他方式声明常量的本地副本或滥用继承(常量接口反模式)时,才使用它。换句话说,当您需要频繁访问一两个类的静态成员时,请使用它。如果您过度使用静态导入功能,它将使您的程序无法读取和不可维护,并使用您导入的所有静态成员污染其名称空间。代码的读者(包括您,在您编写代码后的几个月内)将不知道静态成员来自哪个类。从类中导入所有静态成员可能对可读性特别有害;如果只需要一个或两个成员,则分别导入它们。适当地使用静态导入可以使您的程序更具可读性,



 类似资料:
  • 我正在使用java反射获取方法,这些方法使用特定注释进行注释。它返回两个方法,其中带有修饰符的方法属于接口。但我检查了修改器规范,在任何地方都找不到...需要帮助,tks:)

  • Java修饰符的合理顺序是什么? null 我把建议的字眼改为合理的字眼,是为了平息有关命令是否建议的讨论。

  • 在将“final”添加到myItem声明之前,我首先得到了以下警告: 私有字段myItem可以是最终的;它只在声明或构造函数中初始化。 添加final后,我得到的警告是: 私人修饰符与JLS建议不一致。 有人知道我为什么会收到这个吗?我做了一些研究,但似乎找不到任何东西来解决这个问题。

  • 问题内容: 如果我没有明确声明,方法或实例变量的默认访问修饰符是什么? 例如: 此构造函数的访问修饰符是受保护的还是打包的?同一包(即)中的其他类可以调用此构造函数吗? 问题答案: 如果一个类没有修饰符(默认值,也称为),则它仅在其自己的包中可见(包被命名为相关类的组,你将在以后的课程中对其进行了解。) 在,你也可以像顶级类一样使用修饰符或(),并且含义相同。

  • 问题内容: 我知道这不仅适用于Java,而且适用于许多语言,但这是我最熟悉的语言。 我了解修饰符的作用以及如何使用它们。我只想知道,为什么我们需要它们?为什么每个对象都无法访问,无论是否需要访问? 问题答案: 当您必须维护更大的项目时,原因变得更加明显。当方法或变量是公共的时,对它进行更改时必须小心,因为您永远不知道代码库的哪些部分依赖于它的确切行为。 但是,当变量或方法是私有的时,您会知道该变量

  • 问题内容: 我看到从这个例子上: 并且似乎无法找到import语句前面的下划线是什么意思。 问题答案: 简短答案: 它仅出于副作用导入软件包。 从执行规范: 要仅出于副作用(初始化)导入软件包,请使用空白标识符作为显式软件包名称: 导入_“ lib / math” 在sqlite3 对于go-sqlite3,下划线导入用于将驱动程序注册为该函数中的数据库驱动程序的副作用,而无需导入任何其他函数: