[英]Cleaner access to static fields and methods?
我正在使用帶有幾個靜態字段和方法的Java幫助器類:
doSomething(doableThing, TrackingHandler.EVENT_AREA_FINANCE, TrackingHandler.SUCCEEDED(TrackingHandler.EVENT_KEY_THING));
我試圖提出一種更干凈的方法來引用我的靜態字段和方法,而不必重復TrackingHandler類名稱很多次。
我意識到這不是一個完全相同的主意,但是類似於C#的“ using”將是很棒的:
using TrackingHandler
{
doSomething(doableThing, EVENT_AREA_FINANCE, SUCCEEDED(EVENT_KEY_THING));
}
有沒有辦法做到這一點?
您可以使用靜態導入 :
import static yourpackagename.TrackingHandler.*;
然后只需將靜態成員用作:
doSomething(doableThing, EVENT_AREA_FINANCE, SUCCEEDED(EVENT_KEY_THING));
靜態導入構造允許無條件訪問靜態成員,而無需繼承包含靜態成員的類型。
靜態導入聲明類似於普通導入聲明。 普通的導入聲明從包中導入類,從而允許它們在沒有包限定的情況下使用,而靜態導入聲明從類中導入靜態成員,從而允許它們在沒有類限定的情況下使用。
那么什么時候應該使用靜態導入呢? 非常謹慎! 僅當您打算以其他方式聲明常量的本地副本或濫用繼承(常量接口反模式)時,才使用它。
建議閱讀:
注意:如果不加選擇地使用靜態導入 ,則可能會使代碼更難以理解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.