JavaTM 2 Platform
Standard Ed. 6

javax.lang.model.util
類別 ElementScanner6<R,P>

java.lang.Object
  繼承者 javax.lang.model.util.AbstractElementVisitor6<R,P>
      繼承者 javax.lang.model.util.ElementScanner6<R,P>
型別參數:
R - 此 visitor 的方法的返回型別。對於不需要返回結果的 visitor,使用 Void
所有已實作的介面:
ElementVisitor<R,P>

@SupportedSourceVersion(value=RELEASE_6)
public class ElementScanner6<R,P>
extends AbstractElementVisitor6<R,P>

程序元素的掃瞄 visitor,具有適用於 RELEASE_6 源版本的預設行為。此類別中的 visitXYZ 方法通過對其 封裝元素參數等調用 scan 來掃瞄其元件元素,正如其各自的方法規範所指示的那樣。子類別可以通過覆寫 visitXYZ 方法控制元素的存取順序。注意,scanner 的客戶端可通過對相關根元素調用 v.scan(e, p) 而不是 v.visit(e, p) 來獲得所需行為。

當子類別覆寫 visitXYZ 方法時,新方法可以通過調用 super.visitXYZ 按預設方式掃瞄封裝的元素。使用這種方式,就附加處理而言,具體 visitor 可以控制遍歷元件元素的順序;例如,在覆寫方法的開始處以一致的方式調用 super.visitXYZ 將產生先序遍歷 (preorder traversal)。如果應該以其他順序遍歷元件元素,那麼覆寫的 visit 方法應該使用按所需順序排列的元素調用 scan,而不是調用 super.visitXYZ

根據常規協定,可以覆寫此類別中的方法。注意,具有 @Override 的具體子類別中的註釋方法可以說明確定那些打算覆寫的方法。

警告: 以後可能會向此類別實作的 ElementVisitor 介面添加一些方法,以適應添加到 Java™ 程式語言未來版本中的新(當前未知的)語言結構。所以,將來可能會向此類別添加名稱以 "visit" 開頭的方法;為了避免不相容,擴展此類別的類別不應該宣告任何名稱以 "visit" 開頭的實例方法。

在添加一個這樣的新 visit 方法時,此類別中的預設實作將調用 visitUnknown 方法。還將引入新的元素 scanner visitor 類別,以對應新的語言級別;此 visitor 針對相關 visit 方法有不同的預設行為。在引入新的 visitor 時,此 visitor 的全部或部分可能過時。

從以下版本開始:
1.6

欄位摘要
protected  R DEFAULT_VALUE
          指定的預設值。
 
建構子摘要
protected ElementScanner6()
          具體子類別的建構子;使用 null 作為預設值。
protected ElementScanner6(R defaultValue)
          具體子類別的建構子;使用參數作為預設值。
 
方法摘要
 R scan(Element e)
          等效於 v.scan(e, null) 的便捷方法。
 R scan(Element e, P p)
          通過調用 e.accept(this, p) 處理元素;此方法可被子類別覆寫。
 R scan(Iterable<? extends Element> iterable, P p)
          迭代給定元素並對每個元素調用 scan(Element, P)
 R visitExecutable(ExecutableElement e, P p)
          存取 executable 元素。
 R visitPackage(PackageElement e, P p)
          存取包元素。
 R visitType(TypeElement e, P p)
          存取型別元素。
 R visitTypeParameter(TypeParameterElement e, P p)
          存取型別參數元素。
 R visitVariable(VariableElement e, P p)
          存取變數元素。
 
從類別 javax.lang.model.util.AbstractElementVisitor6 繼承的方法
visit, visit, visitUnknown
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

DEFAULT_VALUE

protected final R DEFAULT_VALUE
指定的預設值。

建構子詳細資訊

ElementScanner6

protected ElementScanner6()
具體子類別的建構子;使用 null 作為預設值。


ElementScanner6

protected ElementScanner6(R defaultValue)
具體子類別的建構子;使用參數作為預設值。

方法詳細資訊

scan

public final R scan(Iterable<? extends Element> iterable,
                    P p)
迭代給定元素並對每個元素調用 scan(Element, P)。返回最後一次調用 scan 的結果;對於空 iterable,則返回 DEFAULT_VALUE

參數:
iterable - 要掃瞄的元素
p - 附加參數
返回:
最後一個元素的掃瞄;如果沒有元素,則返回 DEFAULT_VALUE

scan

public R scan(Element e,
              P p)
通過調用 e.accept(this, p) 處理元素;此方法可被子類別覆寫。

返回:
存取 e 的結果。

scan

public final R scan(Element e)
等效於 v.scan(e, null) 的便捷方法。

返回:
掃瞄 e 的結果。

visitPackage

public R visitPackage(PackageElement e,
                      P p)
存取包元素。 此實作掃瞄封裝的元素。

參數:
e - 要存取的元素
p - 特定於 visitor 的參數
返回:
掃瞄的結果

visitType

public R visitType(TypeElement e,
                   P p)
存取型別元素。 此實作掃瞄封裝的元素。

參數:
e - 要存取的元素
p - 特定於 visitor 的參數
返回:
掃瞄的結果

visitVariable

public R visitVariable(VariableElement e,
                       P p)
存取變數元素。 此實作掃瞄封裝的元素。

參數:
e - 要存取的元素
p - 特定於 visitor 的參數
返回:
掃瞄的結果

visitExecutable

public R visitExecutable(ExecutableElement e,
                         P p)
存取 executable 元素。 此實作掃瞄參數。

參數:
e - 要存取的元素
p - 特定於 visitor 的參數
返回:
掃瞄的結果

visitTypeParameter

public R visitTypeParameter(TypeParameterElement e,
                            P p)
存取型別參數元素。 此實作掃瞄封裝的元素。

參數:
e - 要存取的元素
p - 特定於 visitor 的參數
返回:
掃瞄的結果

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only