我正在使用带有几个静态字段和方法的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));
}
有办法做到这一点吗?
答案 0 :(得分:3)
您可以使用static imports:
import static yourpackagename.TrackingHandler.*;
然后只使用静态成员:
doSomething(doableThing, EVENT_AREA_FINANCE, SUCCEEDED(EVENT_KEY_THING));
静态导入构造允许对静态成员进行非限定访问,而不从包含静态成员的类型继承。
静态导入声明类似于普通导入声明。如果正常的导入声明从包中导入类,允许它们在没有包限定的情况下使用,静态导入声明从类中导入静态成员,允许它们在没有类限定的情况下使用。
那么什么时候应该使用静态导入?非常谨慎!只有在您试图声明常量的本地副本或滥用继承(Constant Interface Antipattern)时才使用它。
建议阅读:
注意:如果不加选择地使用静态导入,可能会使代码更难理解。