uTools-Manuals/docs/java/javax/lang/model/util/ElementScanner7.html

250 lines
16 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.util
</div>
<h2 class="title" title="Class ElementScanner7">Class ElementScanner7&lt;R,P&gt;</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html" title="class in javax.lang.model.util">javax.lang.model.util.AbstractElementVisitor6</a>&lt;R,P&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../javax/lang/model/util/ElementScanner6.html" title="class in javax.lang.model.util">javax.lang.model.util.ElementScanner6</a>&lt;R,P&gt;</li>
<li>
<ul class="inheritance">
<li>javax.lang.model.util.ElementScanner7&lt;R,P&gt;</li>
</ul> </li>
</ul> </li>
</ul> </li>
</ul>
<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>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="javax.lang.model.element中的接口">ElementVisitor</a> &lt;RP&gt;</span>
</dd>
</dl>
<dl>
<dt>
已知直接子类:
</dt>
<dd>
<span><a href="../../../../javax/lang/model/util/ElementScanner8.html" title="javax.lang.model.util中的类">ElementScanner8</a></span>
</dd>
</dl>
<hr/> <br/> <pre><a href="../../../../javax/annotation/processing/SupportedSourceVersion.html" title="annotation in javax.annotation.processing">@SupportedSourceVersion</a>(<a href="../../../../javax/annotation/processing/SupportedSourceVersion.html#value--">value</a>=<a href="../../../../javax/lang/model/SourceVersion.html#RELEASE_7">RELEASE_7</a>)
public class <span class="typeNameLabel">ElementScanner7&lt;R,P&gt;</span>
extends <a href="../../../../javax/lang/model/util/ElementScanner6.html" title="class in javax.lang.model.util">ElementScanner6</a>&lt;R,P&gt;</pre>
<div class="block">
<span>具有适用于<a href="../../../../javax/lang/model/SourceVersion.html#RELEASE_7"><code>RELEASE_7</code></a>源版本的默认行为的程序元素的扫描访问者。</span>
<span>所述<tt>visit<i>XYZ</i></tt>方法在这个类通过调用扫描其成分元素<code>scan</code>他们<a href="../../../../javax/lang/model/element/Element.html#getEnclosedElements--">enclosed elements</a> <a href="../../../../javax/lang/model/element/ExecutableElement.html#getParameters--">parameters</a> ,等等,如在单独的方法规范表示。</span>
<span>一个子类可以通过覆盖<tt>visit<i>XYZ</i></tt>方法来控制访问的顺序元素。</span>
<span>请注意,扫描仪的客户端可能会获得所需的行为,即调用<code>v.scan(e, p)</code>而不是<code>v.visit(e, p)</code>对感兴趣的根对象。</span>
<p> <span>当一个子类覆盖一个<tt>visit<i>XYZ</i></tt>方法时,新方法可以通过调用<tt>super.visit<i>XYZ</i></tt>以默认方式扫描附带的元素。</span> <span>以这种方式,具体的访问者可以控制关于附加处理的遍历组件元素的顺序;</span> <span>例如,在覆盖方法开始时始终调用<tt>super.visit<i>XYZ</i></tt>将产生预序遍历等。如果组件元素应以其他顺序<tt>遍历</tt> ,而不是调用<tt>super.visit<i>XYZ</i></tt> ,则覆盖访问方法应该调用<code>scan</code>中的元素期望的顺序。</span> </p>
<p> <span>本课程中的方法可能会因其总体合同而被覆盖。</span> <span>需要注意的是注释方法,具体子类与<a href="../../../../java/lang/Override.html" title="java.lang中的注释"><code>@Override</code></a>将有助于确定那些打算重写的方法。</span> </p>
<p> <span><b>警告:</b> <code>ElementVisitor</code>实现的ElementVisitor接口可能会在以后添加方法以适应未来版本的Java编程语言中添加的新的当前未知的语言结构。</span> <span>因此, <code>"visit"</code>可以将名称以<code>"visit"</code>开头的方法添加到此类中;</span> <span>为了避免不兼容,扩展此类的类不应声明任何以<code>"visit"</code>实例方法。</span> </p>
<p> <span>当添加这种新的访问方法时,此类中的默认实现将是调用<a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html#visitUnknown-javax.lang.model.element.Element-P-"><code>visitUnknown</code></a>方法。</span> <span>还将引入新的元素扫描器访问者类来对应于新的语言级别;</span> <span>该访问者对于访问方法将具有不同的默认行为。</span> <span>当新访客被介绍时,全部或部分访问者可能会被弃用。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.7
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../javax/lang/model/util/ElementScanner6.html" title="javax.lang.model.util中的类"><code>ElementScanner6</code></a> <a href="../../../../javax/lang/model/util/ElementScanner8.html" title="javax.lang.model.util中的类"><code>ElementScanner8</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.javax.lang.model.util.ElementScanner6">
<!-- --> </a> <h3>Fields inherited from class javax.lang.model.util.<a href="../../../../javax/lang/model/util/ElementScanner6.html" title="class in javax.lang.model.util">ElementScanner6</a></h3> <code><a href="../../../../javax/lang/model/util/ElementScanner6.html#DEFAULT_VALUE">DEFAULT_VALUE</a></code></li>
</ul> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/util/ElementScanner7.html#ElementScanner7--">ElementScanner7</a></span>()</code>
<div class="block">
<span>具体子类的构造方法</span>
<span>使用<code>null</code>作为默认值。</span>
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/util/ElementScanner7.html#ElementScanner7-R-">ElementScanner7</a></span>(<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">R</a> defaultValue)</code>
<div class="block">
<span>具体子类的构造方法</span>
<span>使用参数作为默认值。</span>
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== 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="t4"><span><a href="javascript:show(8);">具体的方法</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/util/ElementScanner7.html" title="type parameter in ElementScanner7">R</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/lang/model/util/ElementScanner7.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/util/ElementScanner7.html" title="type parameter in ElementScanner7">P</a> p)</code>
<div class="block">
此实现扫描包含的元素。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.lang.model.util.ElementScanner6">
<!-- --> </a> <h3>Methods inherited from class javax.lang.model.util.<a href="../../../../javax/lang/model/util/ElementScanner6.html" title="class in javax.lang.model.util">ElementScanner6</a></h3> <code><a href="../../../../javax/lang/model/util/ElementScanner6.html#scan-javax.lang.model.element.Element-">scan</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#scan-javax.lang.model.element.Element-P-">scan</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#scan-java.lang.Iterable-P-">scan</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#visitExecutable-javax.lang.model.element.ExecutableElement-P-">visitExecutable</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#visitPackage-javax.lang.model.element.PackageElement-P-">visitPackage</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#visitType-javax.lang.model.element.TypeElement-P-">visitType</a>, <a href="../../../../javax/lang/model/util/ElementScanner6.html#visitTypeParameter-javax.lang.model.element.TypeParameterElement-P-">visitTypeParameter</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.lang.model.util.AbstractElementVisitor6">
<!-- --> </a> <h3>Methods inherited from class javax.lang.model.util.<a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html" title="class in javax.lang.model.util">AbstractElementVisitor6</a></h3> <code><a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html#visit-javax.lang.model.element.Element-">visit</a>, <a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html#visit-javax.lang.model.element.Element-P-">visit</a>, <a href="../../../../javax/lang/model/util/AbstractElementVisitor6.html#visitUnknown-javax.lang.model.element.Element-P-">visitUnknown</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="ElementScanner7--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>ElementScanner7</h4> <pre>protected ElementScanner7()</pre>
<div class="block">
<span>具体子类的构造方法</span>
<span>使用<code>null</code>作为默认值。</span>
</div> </li>
</ul> <a name="ElementScanner7-java.lang.Object-">
<!-- --> </a><a name="ElementScanner7-R-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ElementScanner7</h4> <pre>protected ElementScanner7(<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">R</a> defaultValue)</pre>
<div class="block">
<span>具体子类的构造方法</span>
<span>使用参数作为默认值。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>defaultValue</code> - 默认值
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="visitVariable-javax.lang.model.element.VariableElement-java.lang.Object-">
<!-- --> </a><a name="visitVariable-javax.lang.model.element.VariableElement-P-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>visitVariable</h4> <pre>public <a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">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/util/ElementScanner7.html" title="type parameter in ElementScanner7">P</a> p)</pre>
<div class="block">
此实现扫描包含的元素。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../../javax/lang/model/element/ElementVisitor.html#visitVariable-javax.lang.model.element.VariableElement-P-">visitVariable</a></code>在接口
<code><a href="../../../../javax/lang/model/element/ElementVisitor.html" title="interface in javax.lang.model.element">ElementVisitor</a>&lt;<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">R</a>,<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">P</a>&gt;</code>
</dd>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../../javax/lang/model/util/ElementScanner6.html#visitVariable-javax.lang.model.element.VariableElement-P-">visitVariable</a></code>
<code><a href="../../../../javax/lang/model/util/ElementScanner6.html" title="class in javax.lang.model.util">ElementScanner6</a>&lt;<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">R</a>,<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="type parameter in ElementScanner7">P</a>&gt;</code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>e</code> - 要访问的元素
</dd>
<dd>
<code>p</code> - 访客指定的参数
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
the result of scanning
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>