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

185 lines
12 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 ElementScanner8">Class ElementScanner8&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><a href="../../../../javax/lang/model/util/ElementScanner7.html" title="class in javax.lang.model.util">javax.lang.model.util.ElementScanner7</a>&lt;R,P&gt;</li>
<li>
<ul class="inheritance">
<li>javax.lang.model.util.ElementScanner8&lt;R,P&gt;</li>
</ul> </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>
<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_8">RELEASE_8</a>)
public class <span class="typeNameLabel">ElementScanner8&lt;R,P&gt;</span>
extends <a href="../../../../javax/lang/model/util/ElementScanner7.html" title="class in javax.lang.model.util">ElementScanner7</a>&lt;R,P&gt;</pre>
<div class="block">
<span>具有适用于<a href="../../../../javax/lang/model/SourceVersion.html#RELEASE_8"><code>RELEASE_8</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.8
</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/ElementScanner7.html" title="javax.lang.model.util中的类"><code>ElementScanner7</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/ElementScanner8.html#ElementScanner8--">ElementScanner8</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/ElementScanner8.html#ElementScanner8-R-">ElementScanner8</a></span>(<a href="../../../../javax/lang/model/util/ElementScanner8.html" title="type parameter in ElementScanner8">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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.lang.model.util.ElementScanner7">
<!-- --> </a> <h3>Methods inherited from class javax.lang.model.util.<a href="../../../../javax/lang/model/util/ElementScanner7.html" title="class in javax.lang.model.util">ElementScanner7</a></h3> <code><a href="../../../../javax/lang/model/util/ElementScanner7.html#visitVariable-javax.lang.model.element.VariableElement-P-">visitVariable</a></code></li>
</ul>
<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="ElementScanner8--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>ElementScanner8</h4> <pre>protected ElementScanner8()</pre>
<div class="block">
<span>具体子类的构造方法</span>
<span>使用<code>null</code>作为默认值。</span>
</div> </li>
</ul> <a name="ElementScanner8-java.lang.Object-">
<!-- --> </a><a name="ElementScanner8-R-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ElementScanner8</h4> <pre>protected ElementScanner8(<a href="../../../../javax/lang/model/util/ElementScanner8.html" title="type parameter in ElementScanner8">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> </li>
</ul>
</div>
</div>