mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-06 17:25:01 +08:00
259 lines
15 KiB
HTML
259 lines
15 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.management.openmbean
|
||
</div>
|
||
<h2 class="title" title="Class CompositeDataInvocationHandler">Class CompositeDataInvocationHandler</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>javax.management.openmbean.CompositeDataInvocationHandler</li>
|
||
</ul> </li>
|
||
</ul>
|
||
<div class="description">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<dl>
|
||
<dt>
|
||
All Implemented Interfaces:
|
||
</dt>
|
||
<dd>
|
||
<span><a href="../../../java/lang/reflect/InvocationHandler.html" title="java.lang.reflect中的接口">InvocationHandler</a></span>
|
||
</dd>
|
||
</dl>
|
||
<hr/> <br/> <pre>public class <span class="typeNameLabel">CompositeDataInvocationHandler</span>
|
||
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>
|
||
implements <a href="../../../java/lang/reflect/InvocationHandler.html" title="interface in java.lang.reflect">InvocationHandler</a></pre>
|
||
<div class="block">
|
||
<p> <span>一个<a href="../../../java/lang/reflect/InvocationHandler.html" title="java.lang.reflect中的接口"><code>InvocationHandler</code></a> ,它将getter方法转发到一个<a href="../../../javax/management/openmbean/CompositeData.html" title="javax.management.openmbean中的接口"><code>CompositeData</code></a> 。</span> <span>如果你有只包含吸气剂的方法(例如接口<code>String getName()</code>或<code>boolean isActive()</code> ),则可以结合使用这个类与<a href="../../../java/lang/reflect/Proxy.html" title="class java.lang.reflect"><code>Proxy</code></a>类以产生其中每个吸气剂返回对应的项的一个的值的接口的实现<code>CompositeData</code> 。</span> </p>
|
||
<p> <span>例如,假设你有一个这样的接口:</span> </p>
|
||
<blockquote>
|
||
<span><pre>
|
||
public interface NamedNumber {
|
||
public int getNumber();
|
||
public String getName();
|
||
}
|
||
</pre></span>
|
||
</blockquote>
|
||
<span>和一个<code>CompositeData</code>构造如下:</span>
|
||
<blockquote>
|
||
<span><pre>
|
||
CompositeData cd =
|
||
new <a href="../../../javax/management/openmbean/CompositeDataSupport.html" title="class in javax.management.openmbean"><code>CompositeDataSupport</code></a>(
|
||
someCompositeType,
|
||
new String[] {"number", "name"},
|
||
new Object[] {<b>5</b>, "five"}
|
||
);
|
||
</pre></span>
|
||
</blockquote>
|
||
<span>那么你可以构造一个实现NamedNumber <code>NamedNumber</code>对象支持的对象<code>cd</code>如下所示:</span>
|
||
<blockquote>
|
||
<span><pre>
|
||
InvocationHandler handler =
|
||
new CompositeDataInvocationHandler(cd);
|
||
NamedNumber nn = (NamedNumber)
|
||
Proxy.newProxyInstance(NamedNumber.class.getClassLoader(),
|
||
new Class[] {NamedNumber.class},
|
||
handler);
|
||
</pre></span>
|
||
</blockquote>
|
||
<span>然后拨打<code>nn.getNumber()</code>将返回<b>5</b> 。</span>
|
||
<p> <span>如果由吸气剂定义的财产的第一个字母是大写字母,那么这个处理程序将首先<code>CompositeData</code> CompositeData中以资本开头的项目,然后如果没有找到,则以相应的小写字母开头的项目代码点。</span> <span>对于一个名为<code>getNumber()</code>的getter,处理程序将首先查找一个名为<code>Number</code>的项,然后查找<code>number</code> 。</span> <span>如果吸气剂被称为<code>getnumber()</code> ,则该项目必须称为<code>number</code> 。</span> </p>
|
||
<p> <span>如果给予方法<a href="../../../javax/management/openmbean/CompositeDataInvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-"><code>invoke</code></a>是方法<code>boolean equals(Object)</code>从继承<code>Object</code> ,则它将当且仅当所述参数是一个返回true <code>Proxy</code>其<code>InvocationHandler</code>也是<code>CompositeDataInvocationHandler</code> ,其背衬<code>CompositeData</code>等于(不一定相同)此对象的。</span> <span>如果给出<code>invoke</code>的方法是从<code>Object</code>的方法<code>int hashCode()</code> ,那么它将返回与equals的这个定义一致的<code>equals</code> :如果两个对象根据<code>equals</code> ,那么它们将具有相同的<code>hashCode</code> 。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.6
|
||
</dd>
|
||
</dl> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="summary">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ======== 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="colOne" scope="col">Constructor and Description</th>
|
||
</tr>
|
||
<tr class="altColor">
|
||
<td class="colOne"><code><span class="memberNameLink"><a href="../../../javax/management/openmbean/CompositeDataInvocationHandler.html#CompositeDataInvocationHandler-javax.management.openmbean.CompositeData-">CompositeDataInvocationHandler</a></span>(<a href="../../../javax/management/openmbean/CompositeData.html" title="interface in javax.management.openmbean">CompositeData</a> compositeData)</code>
|
||
<div class="block">
|
||
构造一个由给定的
|
||
<code>CompositeData</code>支持的处理程序。
|
||
</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/management/openmbean/CompositeData.html" title="interface in javax.management.openmbean">CompositeData</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/openmbean/CompositeDataInvocationHandler.html#getCompositeData--">getCompositeData</a></span>()</code>
|
||
<div class="block">
|
||
返回
|
||
<code>CompositeData</code>这是提供给构造。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor" id="i1">
|
||
<td class="colFirst"><code><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/openmbean/CompositeDataInvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invoke</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> proxy, <a href="../../../java/lang/reflect/Method.html" title="class in java.lang.reflect">方法</a> method, <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>[] args)</code>
|
||
<div class="block">
|
||
处理代理实例上的方法调用并返回结果。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<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="CompositeDataInvocationHandler-javax.management.openmbean.CompositeData-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>CompositeDataInvocationHandler</h4> <pre>public CompositeDataInvocationHandler(<a href="../../../javax/management/openmbean/CompositeData.html" title="interface in javax.management.openmbean">CompositeData</a> compositeData)</pre>
|
||
<div class="block">
|
||
<p>构造一个由给定的<code>CompositeData</code>支持的处理程序。 </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>compositeData</code> -
|
||
<code>CompositeData</code>提供信息的CompositeData。
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
|
||
<code>compositeData</code>为空。
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="getCompositeData--">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>getCompositeData</h4> <pre>public <a href="../../../javax/management/openmbean/CompositeData.html" title="interface in javax.management.openmbean">CompositeData</a> getCompositeData()</pre>
|
||
<div class="block">
|
||
返回
|
||
<code>CompositeData</code>这是提供给构造。
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>这个处理程序支持的<code>CompositeData</code> 。</span>
|
||
<span>这从来不为空。</span>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>invoke</h4> <pre>public <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> invoke(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> proxy,
|
||
<a href="../../../java/lang/reflect/Method.html" title="class in java.lang.reflect">方法</a> method,
|
||
<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>[] args)
|
||
throws <a href="../../../java/lang/Throwable.html" title="class in java.lang">Throwable</a></pre>
|
||
<div class="block">
|
||
<span class="descfrmTypeLabel">从接口复制: <code><a href="../../../java/lang/reflect/InvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">InvocationHandler</a></code></span>
|
||
</div>
|
||
<div class="block">
|
||
<span>处理代理实例上的方法调用并返回结果。</span>
|
||
<span>当在与之关联的代理实例上调用方法时,将在调用处理程序中调用此方法。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="overrideSpecifyLabel">Specified by:</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../java/lang/reflect/InvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invoke</a></code>在接口
|
||
<code><a href="../../../java/lang/reflect/InvocationHandler.html" title="interface in java.lang.reflect">InvocationHandler</a></code>
|
||
</dd>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>proxy</code> - 调用该方法的代理实例
|
||
</dd>
|
||
<dd>
|
||
<span><code>method</code> -所述<code>方法</code>对应于调用代理实例上的接口方法的实例。</span>
|
||
<span><code>方法</code>对象的声明类将是方法声明的接口,它可以是代理接口的超级接口,代理类继承方法。</span>
|
||
</dd>
|
||
<dd>
|
||
<span><code>args</code> -包含的方法调用传递代理实例的参数值的对象的阵列,或<code>null</code>如果接口方法没有参数。</span>
|
||
<span>原始类型的参数包含在适当的原始包装器类的实例中,例如<code>java.lang.Integer</code>或<code>java.lang.Boolean</code> 。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>从代理实例上的方法调用返回的值。</span>
|
||
<span>如果接口方法的声明返回类型是原始类型,则此方法返回的值必须是对应的基本包装类的实例;</span>
|
||
<span>否则,它必须是可声明返回类型的类型。</span>
|
||
<span>如果此方法返回的值是<code>null</code>和接口方法的返回类型是基本类型,那么<code>NullPointerException</code>将由代理实例的方法调用抛出。</span>
|
||
<span>如上所述,如果此方法返回的值,否则不会与接口方法的声明的返回类型兼容,一个<code>ClassCastException</code>将代理实例的方法调用将抛出。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code><a href="../../../java/lang/Throwable.html" title="class in java.lang">Throwable</a></code> - 从代理实例上的方法调用抛出的异常。</span>
|
||
<span>异常类型必须可以分配给接口方法的<code>throws</code>子句中声明的任何异常类型<code>java.lang.RuntimeException</code>检查的异常类型<code>java.lang.RuntimeException</code>或<code>java.lang.Error</code> 。</span>
|
||
<span>如果检查的异常是由这种方法是不分配给任何的中声明的异常类型<code>throws</code>接口方法的子句,则一个<a href="../../../java/lang/reflect/UndeclaredThrowableException.html" title="class java.lang.reflect"><code>UndeclaredThrowableException</code></a>包含有由该方法抛出的异常将通过在方法调用抛出代理实例。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<span><a href="../../../java/lang/reflect/UndeclaredThrowableException.html" title="class java.lang.reflect"><code>UndeclaredThrowableException</code></a></span>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
</div> |