“导入”之后的“静态”修饰语是什么意思?像这样使用时:import static com.showboy.Myclass;public class Anotherclass{}有什么区别import static com.showboy.Myclass和import com.showboy.Myclass?
3 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
静态导入声明类似于正常的导入声明。如果正常导入声明从包导入类,允许在没有包限定的情况下使用这些类,则静态导入声明从类中导入静态成员,允许在没有类限定的情况下使用它们。
那么什么时候应该使用静态导入呢?非常谨慎!只有当您不想声明常量的本地副本或滥用继承(常量接口反模式)时才使用它。换句话说,当您需要经常访问一个或两个类的静态成员时,请使用它。如果您过度使用静态导入功能,它可能会使您的程序不可读和不可维护,从而使用您导入的所有静态成员污染它的命名空间。您的代码的读者(包括您,在您编写代码几个月后)将不知道静态成员来自哪个类。从类中导入所有静态成员对可读性特别有害;如果只需要一个或两个成员,则单独导入它们。如果使用得当,静态导入可以通过删除类名重复的样板来提高程序的可读性。
慕莱坞森
TA贡献1810条经验 获得超4个赞
您所述的这两种进口产品之间没有差别。但是,您可以使用静态导入来允许对其他类的静态成员进行不限定的访问。在我以前不得不这样做的地方:
import org.apache.commons.lang.StringUtils; . . .if (StringUtils.isBlank(aString)) { . . .
我能做到:
import static org.apache.commons.lang.StringUtils.isBlank; . . .if (isBlank(aString)) { . . .
添加回答
举报
0/150
提交
取消