|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.management.openmbean.CompositeDataInvocationHandler
public class CompositeDataInvocationHandler
將獲取方法轉發給 CompositeData
的 InvocationHandler
。如果有只包含獲取方法(如 String getName()
或 boolean isActive()
)的介面,則可以將此類別與 Proxy
類別一起使用,以產生一個介面實作,在該介面中,每個設置方法都返回 CompositeData
中對應項的值。
例如,假定您有如下所示介面:
以及使用以下方式建構的public interface NamedNumber { public int getNumber(); public String getName(); }
CompositeData
:
那麼您可以建構一個實作CompositeData cd = newCompositeDataSupport
( someCompositeType, new String[] {"number", "name"}, new Object[] {5, "five"} );
NamedNumber
且受物件 cd
支持的物件,如下所示:
對InvocationHandler handler = new CompositeDataInvocationHandler(cd); NamedNumber nn = (NamedNumber) Proxy.newProxyInstance(NamedNumber.class.getClassLoader(), new Class[] {NamedNumber.class}, handler);
nn.getNumber()
的調用將返回 5。
如果設置方法定義的屬性的第一個字母是大寫字母,則此處理程序將首先在 CompositeData
中尋找以大寫字母開頭的項,然後,如果找不到這樣的項,則尋找以相應的小寫字母或程式碼點開頭的項。對於名為 getNumber()
的獲取方法,該處理程序將首先尋找名為 Number
的項,然後尋找名為 number
的項。如果設置方法名為 getnumber()
,則尋找項必須名為 number
。
如果為 invoke
提供的方法是從 Object
繼承的方法 boolean equals(Object)
,則當且僅當參數是一個其 InvocationHandler
也是 CompositeDataInvocationHandler
且其後備 CompositeData
等於(不必相同)此物件的 CompositeData
的 Proxy
時,它將返回 true。如果為 invoke
提供的方法是從 Object
繼承的方法 int hashCode()
,那麼它將返回一個與 equals
的定義一致的值:如果根據 equals
判斷兩個物件是相等的,則它們將具有相同的 hashCode
。
建構子摘要 | |
---|---|
CompositeDataInvocationHandler(CompositeData compositeData)
建構一個受給定 CompositeData 支持的處理程序。 |
方法摘要 | |
---|---|
CompositeData |
getCompositeData()
返回提供給建構子的 CompositeData 。 |
Object |
invoke(Object proxy,
Method method,
Object[] args)
在代理實例上處理方法調用並返回結果。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public CompositeDataInvocationHandler(CompositeData compositeData)
建構一個受給定 CompositeData
支持的處理程序。
compositeData
- 將為設置方法提供資訊的 CompositeData
。
IllegalArgumentException
- 如果 compositeData
為 null。方法詳細資訊 |
---|
public CompositeData getCompositeData()
CompositeData
。
CompositeData
。返回值永遠不可以為 null。public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
InvocationHandler
複製的描述
InvocationHandler
中的 invoke
proxy
- 在其上調用方法的代理實例method
- 對應於在代理實例上調用的介面方法的 Method
實例。Method
物件的宣告類別將是在其中宣告方法的介面,該介面可以是代理類別賴以繼承方法的代理介面的父級介面。args
- 套件含傳入代理實例上方法調用的參數值的物件陣列,如果介面方法不使用參數,則為 null
。基本型別的參數被包裹在適當基本外覆器類別(如 java.lang.Integer
或 java.lang.Boolean
)的實例中。
null
並且介面方法的返回型別是基本型別,則代理實例上的方法調用將拋出 NullPointerException
。否則,如果此方法返回的值與上述介面方法的宣告返回型別不相容,則代理實例上的方法調用將拋出 ClassCastException
。
Throwable
- 從代理實例上的方法調用拋出的異常。該異常的型別必須可以分派到在介面方法的 throws
子句中宣告的任一異常型別或未經檢查的異常型別 java.lang.RuntimeException
或 java.lang.Error
。如果此方法拋出經過檢查的異常,該異常不可分派到在介面方法的 throws
子句中宣告的任一異常型別,代理實例的方法調用將拋出包含此方法曾拋出的異常的 UndeclaredThrowableException
。UndeclaredThrowableException
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。