360 lines
20 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.lang.model.element
</div>
<h2 class="title" title="Interface ElementVisitor">Interface ElementVisitor&lt;R,P&gt;</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
<span class="paramLabel">参数类型</span>
</dt>
<dd>
<span><code>R</code> - 这个访问者的方法的返回类型。</span>
<span>对不需要返回结果的访问者使用<a href="../../../../java/lang/Void.html" title="java.lang中的类"><code>Void</code></a></span>
</dd>
<dd>
<span><code>P</code> - 访问者方法的附加参数类型。</span>
<span>对不需要其他<code>Void</code>的访问者使用Void。</span>
</dd>
</dl>
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html" title="javax.lang.model.util中的类">AbstractElementVisitor6</a> <a href="../../../../javax/lang/model/util/AbstractElementVisitor7.html" title="javax.lang.model.util中的类">AbstractElementVisitor7</a> <a href="../../../../javax/lang/model/util/AbstractElementVisitor8.html" title="javax.lang.model.util中的类">AbstractElementVisitor8</a> <a href="../../../../javax/lang/model/util/ElementKindVisitor6.html" title="javax.lang.model.util中的类">ElementKindVisitor6</a> <a href="../../../../javax/lang/model/util/ElementKindVisitor7.html" title="javax.lang.model.util中的类">ElementKindVisitor7</a> <a href="../../../../javax/lang/model/util/ElementKindVisitor8.html" title="javax.lang.model.util中的类">ElementKindVisitor8</a> <a href="../../../../javax/lang/model/util/ElementScanner6.html" title="javax.lang.model.util中的类">ElementScanner6</a> <a href="../../../../javax/lang/model/util/ElementScanner7.html" title="javax.lang.model.util中的类">ElementScanner7</a> <a href="../../../../javax/lang/model/util/ElementScanner8.html" title="javax.lang.model.util中的类">ElementScanner8</a> <a href="../../../../javax/lang/model/util/SimpleElementVisitor6.html" title="javax.lang.model.util中的类">SimpleElementVisitor6</a> <a href="../../../../javax/lang/model/util/SimpleElementVisitor7.html" title="javax.lang.model.util中的类">SimpleElementVisitor7</a> <a href="../../../../javax/lang/model/util/SimpleElementVisitor8.html" title="javax.lang.model.util中的类">SimpleElementVisitor8</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">ElementVisitor&lt;R,P&gt;</span></pre>
<div class="block">
<span>游客的程式元素,以访客设计风格为格局。</span>
<span>实现此接口的类用于在编译时元素的种类未知时对元素进行操作。</span>
<span>当访问者被传递到元素的<a href="../../../../javax/lang/model/element/Element.html#accept-javax.lang.model.element.ElementVisitor-P-"><code>accept</code></a>方法时,调用最适用于该元素的<tt>visit<i>XYZ</i></tt>方法。</span>
<p> <span>实现此界面的类可以或可以不抛出<code>NullPointerException</code>如果附加参数<code>p</code><code>null</code> ;</span> <span>有关详细信息,请参阅实施类的文档。</span> </p>
<p> <span><b>警告:</b>可能的方法将添加到此界面以适应未来版本的Java编程语言中添加的新的当前未知的语言结构。</span> <span>因此,直接实现此接口的访问者类可能与未来的平台版本不兼容。</span> <span>为了避免这种源不兼容,我们鼓励访问者实现扩展实现此接口的适当抽象访问类。</span> <span>然而API通常应该将此访问接口用作参数返回类型等的类型而不是抽象类之一。</span> </p>
<p> <span>请注意,如果添加为<em>默认方法,</em>则可以以源<em>兼容的</em>方式添加适应新语言结构的<em>方法</em></span> <span>但是默认方法仅适用于Java SE 8和更高版本并且Java SE 8中捆绑的<code>javax.lang.model.*</code>软件包也需要在Java SE 7上运行。因此在扩展<code>javax.lang.model.*</code>以涵盖Java SE 8语言时<em>,不能</em>使用默认方法特征。</span> <span>但是默认方法可能用于仅在Java SE 8和更高版本平台上运行的<code>javax.lang.model.*</code>软件包的<code>javax.lang.model.*</code>版本。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html" title="javax.lang.model.util中的类"><code>AbstractElementVisitor6</code></a> <a href="../../../../javax/lang/model/util/AbstractElementVisitor7.html" title="javax.lang.model.util中的类"><code>AbstractElementVisitor7</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visit-javax.lang.model.element.Element-">visit</a></span>(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e)</code>
<div class="block">
方便的方法相当于
<code>v.visit(e, null)</code>
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visit-javax.lang.model.element.Element-P-">visit</a></span>(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问元素
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitExecutable-javax.lang.model.element.ExecutableElement-P-">visitExecutable</a></span>(<a href="../../../../javax/lang/model/element/ExecutableElement.html" title="interface in javax.lang.model.element">ExecutableElement</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问可执行元素。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitPackage-javax.lang.model.element.PackageElement-P-">visitPackage</a></span>(<a href="../../../../javax/lang/model/element/PackageElement.html" title="interface in javax.lang.model.element">PackageElement</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问包元素。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitType-javax.lang.model.element.TypeElement-P-">visitType</a></span>(<a href="../../../../javax/lang/model/element/TypeElement.html" title="interface in javax.lang.model.element">TypeElement</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问类型元素。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitTypeParameter-javax.lang.model.element.TypeParameterElement-P-">visitTypeParameter</a></span>(<a href="../../../../javax/lang/model/element/TypeParameterElement.html" title="interface in javax.lang.model.element">TypeParameterElement</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问类型参数元素。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitUnknown-javax.lang.model.element.Element-P-">visitUnknown</a></span>(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问一种未知的元素。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitVariable-javax.lang.model.element.VariableElement-P-">visitVariable</a></span>(<a href="../../../../javax/lang/model/element/VariableElement.html" title="interface in javax.lang.model.element">VariableElement</a> e, <a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</code>
<div class="block">
访问可变元素。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="visit-javax.lang.model.element.Element-java.lang.Object-">
<!-- --> </a><a name="visit-javax.lang.model.element.Element-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visit</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visit(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问元素
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visit-javax.lang.model.element.Element-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visit</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visit(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e)</pre>
<div class="block">
方便的方法相当于
<code>v.visit(e, null)</code>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitPackage-javax.lang.model.element.PackageElement-java.lang.Object-">
<!-- --> </a><a name="visitPackage-javax.lang.model.element.PackageElement-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visitPackage</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitPackage(<a href="../../../../javax/lang/model/element/PackageElement.html" title="interface in javax.lang.model.element">PackageElement</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问包元素。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitType-javax.lang.model.element.TypeElement-java.lang.Object-">
<!-- --> </a><a name="visitType-javax.lang.model.element.TypeElement-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visitType</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitType(<a href="../../../../javax/lang/model/element/TypeElement.html" title="interface in javax.lang.model.element">TypeElement</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问类型元素。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitVariable-javax.lang.model.element.VariableElement-java.lang.Object-">
<!-- --> </a><a name="visitVariable-javax.lang.model.element.VariableElement-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visitVariable</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitVariable(<a href="../../../../javax/lang/model/element/VariableElement.html" title="interface in javax.lang.model.element">VariableElement</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问可变元素。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitExecutable-javax.lang.model.element.ExecutableElement-java.lang.Object-">
<!-- --> </a><a name="visitExecutable-javax.lang.model.element.ExecutableElement-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visitExecutable</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitExecutable(<a href="../../../../javax/lang/model/element/ExecutableElement.html" title="interface in javax.lang.model.element">ExecutableElement</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问可执行元素。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitTypeParameter-javax.lang.model.element.TypeParameterElement-java.lang.Object-">
<!-- --> </a><a name="visitTypeParameter-javax.lang.model.element.TypeParameterElement-P-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>visitTypeParameter</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitTypeParameter(<a href="../../../../javax/lang/model/element/TypeParameterElement.html" title="interface in javax.lang.model.element">TypeParameterElement</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
访问类型参数元素。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
</dl> </li>
</ul> <a name="visitUnknown-javax.lang.model.element.Element-java.lang.Object-">
<!-- --> </a><a name="visitUnknown-javax.lang.model.element.Element-P-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>visitUnknown</h4> <pre><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">R</a> visitUnknown(<a href="../../../../javax/lang/model/element/Element.html" title="interface in javax.lang.model.element">Element</a> e,
<a href="../../../../javax/lang/model/element/ElementVisitor.html" title="type parameter in ElementVisitor">P</a> p)</pre>
<div class="block">
<span>访问一种未知的元素。</span>
<span>如果语言发展并且将新的元素添加到<code>Element</code>层次结构中,则可能会发生这种情况。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
访客指定的结果
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../../javax/lang/model/element/UnknownElementException.html" title="class in javax.lang.model.element">UnknownElementException</a></code> - 访客实现可以可选地抛出此异常
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>