簡體   English   中英

更干凈地訪問靜態字段和方法?

[英]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));

靜態導入構造允許無條件訪問靜態成員,而無需繼承包含靜態成員的類型。

靜態導入聲明類似於普通導入聲明。 普通的導入聲明從包中導入類,從而允許它們在沒有包限定的情況下使用,而靜態導入聲明從類中導入靜態成員,從而允許它們在沒有類限定的情況下使用。

那么什么時候應該使用靜態導入呢? 非常謹慎! 僅當您打算以其他方式聲明常量的本地副本或濫用繼承(常量接口反模式)時,才使用它。

建議閱讀:

  1. “導入”之后的“靜態”修飾語是什么意思?
  2. JLS 7.5.3和7.5.4
  3. 我應該使用靜態導入嗎?

注意:如果不加選擇地使用靜態導入 ,則可能會使代碼更難以理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM