mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-05 00:04:33 +08:00
383 lines
25 KiB
HTML
383 lines
25 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.management
|
||
</div>
|
||
<h2 class="title" title="Class MBeanServerInvocationHandler">Class MBeanServerInvocationHandler</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.MBeanServerInvocationHandler</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">MBeanServerInvocationHandler</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>将MBean管理界面中的方法通过MBean服务器转发到MBean。</span> </p>
|
||
<p> <span>给定一个<a href="../../javax/management/MBeanServerConnection.html" title="javax.management中的接口"><code>MBeanServerConnection</code></a> ,该<a href="../../javax/management/ObjectName.html" title="javax.management中的类"><code>ObjectName</code></a>一个MBean的该MBean服务器中,并且Java接口<code>Intf</code>描述使用Standard MBean或MXBean的模式的MBean的管理接口,这个类可以用来构建一个代理在MBean 。</span> <span>代理实现接口<code>Intf</code> ,使得其所有方法都通过MBean服务器转发到MBean。</span> </p>
|
||
<p> <span>如果<code>InvocationHandler</code>用于MXBean,则将方法的参数从MXBean接口中声明的类型转换为相应的映射类型,并将返回值从映射类型转换为声明类型。</span> <span>例如,用该方法</span> <br/> <code>public List<String> reverse(List<String> list);</code> <br/> <span>并考虑到为映射类型<code>List<String></code>是<code>String[]</code> ,将呼叫<code>proxy.reverse(someList)</code>将转换<code>someList</code>从<code>List<String></code>到<code>String[]</code> ,调用MBean操作<code>reverse</code> ,然后转换返回<code>String[]</code>到<code>List<String></code> 。</span> </p>
|
||
<p> <span>当使用此调用处理程序在代理上调用时,Object.toString(),Object.hashCode()或Object.equals(Object))方法仅在代理的MBean中出现时才转发到MBean服务器代理接口之一。</span> <span>对于使用<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>JMX.newMBeanProxy</code></a>或<a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>JMX.newMXBeanProxy</code></a>创建的代理,这意味着该方法必须出现在标准MBean或MXBean接口中。</span> <span>否则这些方法具有以下行为:</span> </p>
|
||
<ul>
|
||
<li> <span>toString()返回代理的字符串表示形式</span> </li>
|
||
<li> <span>hashCode()返回代理的哈希码,使得两个相等的代理具有相同的哈希码</span> </li>
|
||
<li> <span>如果Object参数与此代理具有相同的代理类,则equals(Object)将返回true,而MBeanServerInvocationHandler具有相同的MBeanServerConnection和ObjectName;</span> <span>如果<code>MBeanServerInvocationHandler</code>之一是用<code>类</code>参数构造的,那么另一个必须用equals相同的<code>类</code> <code>equals</code>才能返回true。</span> </li>
|
||
</ul>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.5
|
||
</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/MBeanServerInvocationHandler.html#MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-">MBeanServerInvocationHandler</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName)</code>
|
||
<div class="block">
|
||
调用处理程序,将方法通过MBean服务器转发到标准MBean。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<td class="colOne"><code><span class="memberNameLink"><a href="../../javax/management/MBeanServerInvocationHandler.html#MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-boolean-">MBeanServerInvocationHandler</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, boolean isMXBean)</code>
|
||
<div class="block">
|
||
调用处理程序,可以将方法通过MBean服务器转发到标准MBean或MXBean。
|
||
</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="t1"><span><a href="javascript:show(1);">静态方法</a></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/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/MBeanServerInvocationHandler.html#getMBeanServerConnection--">getMBeanServerConnection</a></span>()</code>
|
||
<div class="block">
|
||
使用此处理程序的代理方法转发的MBean服务器连接。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor" id="i1">
|
||
<td class="colFirst"><code><a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/MBeanServerInvocationHandler.html#getObjectName--">getObjectName</a></span>()</code>
|
||
<div class="block">
|
||
MBean服务器中转发方法的MBean的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor" id="i2">
|
||
<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/MBeanServerInvocationHandler.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>
|
||
<tr class="rowColor" id="i3">
|
||
<td class="colFirst"><code>boolean</code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/MBeanServerInvocationHandler.html#isMXBean--">isMXBean</a></span>()</code>
|
||
<div class="block">
|
||
如果为true,则代理为MXBean,适当的映射应用于方法参数和返回值。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor" id="i4">
|
||
<td class="colFirst"><code>static <T> T</code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/MBeanServerInvocationHandler.html#newProxyInstance-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">newProxyInstance</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, <a href="../../java/lang/Class.html" title="class in java.lang">类</a><T> interfaceClass, boolean notificationBroadcaster)</code>
|
||
<div class="block">
|
||
通过将其方法通过给定的MBean服务器转发到指定的MBean来返回实现给定接口的代理。
|
||
</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="MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>MBeanServerInvocationHandler</h4> <pre>public MBeanServerInvocationHandler(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
|
||
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName)</pre>
|
||
<div class="block">
|
||
<p> <span>调用处理程序,将方法通过MBean服务器转发到标准MBean。</span> <span>可以调用此构造函数,而不是依赖于<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>JMX.newMBeanProxy</code></a> ,例如,如果您需要将不同的<code>ClassLoader</code> <a href="../../java/lang/ClassLoader.html" title="java.lang中的类">提供</a>给<a href="../../java/lang/reflect/Proxy.html#newProxyInstance-java.lang.ClassLoader-java.lang.Class:A-java.lang.reflect.InvocationHandler-"><code>Proxy.newProxyInstance</code></a> 。</span> </p>
|
||
<p> <span>此构造函数不适用于MXBean。</span> <span>使用<a href="../../javax/management/MBeanServerInvocationHandler.html#MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-boolean-"><code>MBeanServerInvocationHandler(MBeanServerConnection, ObjectName, boolean)</code></a> 。</span> <span>此构造函数相当于<code>new MBeanServerInvocationHandler(connection, objectName, false)</code> 。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>connection</code> - 使用此处理程序的代理的所有方法将
|
||
<code>connection</code>的MBean服务器连接。
|
||
</dd>
|
||
<dd>
|
||
<code>objectName</code> - 要转发哪些方法的MBean服务器内的MBean的名称。
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-boolean-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>MBeanServerInvocationHandler</h4> <pre>public MBeanServerInvocationHandler(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
|
||
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
|
||
boolean isMXBean)</pre>
|
||
<div class="block">
|
||
<p> <span>调用处理程序,可以将方法通过MBean服务器转发到标准MBean或MXBean。</span> <span>可以调用此构造函数,而不是依赖于<a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>JMX.newMXBeanProxy</code></a> ,例如,如果您需要提供不同的<a href="../../java/lang/ClassLoader.html" title="java.lang中的类"><code>ClassLoader</code></a>到<a href="../../java/lang/reflect/Proxy.html#newProxyInstance-java.lang.ClassLoader-java.lang.Class:A-java.lang.reflect.InvocationHandler-"><code>Proxy.newProxyInstance</code></a> 。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>connection</code> - 使用此处理程序的代理的所有方法都将转发的MBean服务器连接。
|
||
</dd>
|
||
<dd>
|
||
<code>objectName</code> - MBean服务器中要转发哪些方法的MBean的名称。
|
||
</dd>
|
||
<dd>
|
||
<span><code>isMXBean</code> - 如果为true,则代理为<a href="../../javax/management/MXBean.html" title="javax.management中的注释"><code>MXBean</code></a> ,适当的映射将应用于方法参数和返回值。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.6
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="getMBeanServerConnection--">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>getMBeanServerConnection</h4> <pre>public <a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> getMBeanServerConnection()</pre>
|
||
<div class="block">
|
||
<p>使用此处理程序的代理方法转发的MBean服务器连接。 </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
MBean服务器连接。
|
||
</dd>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.6
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="getObjectName--">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>getObjectName</h4> <pre>public <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> getObjectName()</pre>
|
||
<div class="block">
|
||
<p> MBean服务器中转发方法的MBean的名称。 </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
对象名称。
|
||
</dd>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.6
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="isMXBean--">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>isMXBean</h4> <pre>public boolean isMXBean()</pre>
|
||
<div class="block">
|
||
<p>如果为true,则代理为MXBean,适当的映射应用于方法参数和返回值。 </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
代理是否用于MXBean。
|
||
</dd>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.6
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="newProxyInstance-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>newProxyInstance</h4> <pre>public static <T> T newProxyInstance(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
|
||
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
|
||
<a href="../../java/lang/Class.html" title="class in java.lang">类</a><T> interfaceClass,
|
||
boolean notificationBroadcaster)</pre>
|
||
<div class="block">
|
||
<p> <span>通过将其方法通过给定的MBean服务器转发到指定的MBean来返回实现给定接口的代理。</span> <span>从1.6开始,方法<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)</code></a>和<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-"><code>JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)</code></a>优于该方法。</span> </p>
|
||
<p> <span>此方法相当于<a href="../../java/lang/reflect/Proxy.html#newProxyInstance-java.lang.ClassLoader-java.lang.Class:A-java.lang.reflect.InvocationHandler-"><code>Proxy.newProxyInstance</code></a> <code>(interfaceClass.getClassLoader(), interfaces, handler)</code> 。</span> <span>这里<code>handler</code>是的结果<a href="../../javax/management/MBeanServerInvocationHandler.html#MBeanServerInvocationHandler-javax.management.MBeanServerConnection-javax.management.ObjectName-boolean-"><code>new MBeanServerInvocationHandler(connection, objectName)</code></a>和<code>interfaces</code>是具有如果一个元素的数组<code>notificationBroadcaster</code>为假以及两个如果这是真的。</span> <span><code>interfaces</code>的第一个元素是<code>interfaceClass</code> ,第二个元素(如果有的话)是<code>NotificationEmitter.class</code> 。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数类型</span>
|
||
</dt>
|
||
<dd>
|
||
<code>T</code> - 允许编译器知道如果
|
||
<code>interfaceClass</code>参数是
|
||
<code>MyMBean.class</code> ,那么返回类型是
|
||
<code>MyMBean</code> 。
|
||
</dd>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>connection</code> - 要转发的MBean服务器。
|
||
</dd>
|
||
<dd>
|
||
<code>objectName</code> - 要转发到的
|
||
<code>connection</code>内的MBean的名称。
|
||
</dd>
|
||
<dd>
|
||
<code>interfaceClass</code> - MBean导出的管理界面,也将由返回的代理实现。
|
||
</dd>
|
||
<dd>
|
||
<span><code>notificationBroadcaster</code> -使返回的代理实现<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>经由其方法转发<code>connection</code> 。</span>
|
||
<span>要在通话<a href="../../javax/management/NotificationBroadcaster.html#addNotificationListener-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)</code></a>上的代理将导致调用<a href="../../javax/management/MBeanServerConnection.html#addNotificationListener-javax.management.ObjectName-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)</code></a> ,同样对于其他方法<a href="../../javax/management/NotificationBroadcaster.html" title="javax.management中的接口"><code>NotificationBroadcaster</code></a>和<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a> 。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
新的代理实例。
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-"><code>JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)</code></a>
|
||
</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> |