0

我正在使用带有几个静态字段和方法的 Java 助手类:

doSomething(doableThing, TrackingHandler.EVENT_AREA_FINANCE, TrackingHandler.SUCCEEDED(TrackingHandler.EVENT_KEY_THING));

我试图想出一种更简洁的方法来引用我的静态字段和方法,而不必多次重复 TrackingHandler 类名。

我意识到这不是完全相同的想法,但类似于 C# 的“使用”的东西会很棒:

using TrackingHandler
{
    doSomething(doableThing, EVENT_AREA_FINANCE, SUCCEEDED(EVENT_KEY_THING));
}

有没有办法做到这一点?

4

1 回答 1

3

您可以使用静态导入

import static yourpackagename.TrackingHandler.*;

然后只需将静态成员用作:

doSomething(doableThing, EVENT_AREA_FINANCE, SUCCEEDED(EVENT_KEY_THING));

静态导入构造允许对静态成员的非限定访问,而无需从包含静态成员的类型继承。

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

那么什么时候应该使用静态导入呢?非常节俭!仅当您想要声明常量的本地副本或滥用继承(常量接口反模式)时才使用它。

推荐阅读:

  1. “import”后面的“static”修饰符是什么意思?
  2. JLS 7.5.3 和 7.5.4
  3. 我应该使用静态导入吗?

注意:如果不加选择地使用静态导入,可能会使代码更难理解。

于 2013-07-23T16:02:17.533 回答