MethodType 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。
[Android.Runtime.Register("java/lang/invoke/MethodType", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class MethodType : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.Invoke.ITypeDescriptor.IOfMethod
[<Android.Runtime.Register("java/lang/invoke/MethodType", ApiSince=26, DoNotGenerateAcw=true)>]
type MethodType = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ITypeDescriptor.IOfMethod
interface ITypeDescriptor
- 繼承
- 屬性
- 實作
備註
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 方法類型必須在方法控制碼及其所有呼叫端之間正確比對,而 JVM 的作業會強制執行此比對,特別是在對 和 MethodHandle#invoke MethodHandle.invoke
的呼叫 MethodHandle#invokeExact MethodHandle.invokeExact
期間,以及在指令執行 invokedynamic
期間。
結構是傳回型別,隨附任意數目的參數類型。 (基本、、 void
和 參考) 的類型是由 Class
物件表示。 (為了方便說明,我們會將其視為 void
類型。事實上,這表示沒有傳回 type.)
的所有實例 MethodType
都是不可變的。 如果兩個實例相等,則兩個實例完全可互換。 相等取決於傳回和參數類型的成對對應,以及任何其他專案。
此類型只能由 Factory 方法建立。 雖然不保證快取,但所有處理站方法都可以快取值。 有些處理站方法是靜態的,而其他則是虛擬方法,可藉由變更選取的參數來修改前導方法類型。
在參數類型群組上運作的 Factory 方法會在兩個版本中有系統地呈現,因此 JAVA 陣列和 JAVA 清單都可以用來處理參數類型的群組。 查詢方法 parameterArray
, parameterList
也提供陣列和清單之間的選擇。
MethodType
物件有時衍生自位元組程式碼指令,例如 invokedynamic
,特別是來自類別檔案之常數集區中相關指令的類型描述項字串。
如同類別和字串,方法類型也可以直接在類別檔案的常數集區中表示為常數。 方法類型可由參考適當 CONSTANT_MethodType
常數集區專案的指令載入 ldc
。 專案是指 CONSTANT_Utf8
描述項字串的拼字。 (如需方法類型常數的完整詳細資料,請參閱 JAVA 虛擬機器規格.) 的 4.4.8 和 5.4.3.5 節
當 JVM 從描述項字串具體化 MethodType
時,必須在描述項中命名的所有類別都可供存取,而且會載入。 (但不需要初始化類別,如同 .) 此載入可能會在物件第一 CONSTANT_Class
次衍生之前 MethodType
隨時發生。
的 java.lang.invoke.MethodType
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
HasPrimitives |
報告此類型是否包含基本引數或傳回值。 |
HasWrappers |
報告此類型是否包含包裝函式引數或傳回值。 |
JniIdentityHashCode |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
JniPeerMembers |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
PeerReference |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 (繼承來源 Object) |
方法
AppendParameterTypes(Class[]) |
尋找或建立具有其他參數類型的方法類型。 |
AppendParameterTypes(IList<Class>) |
尋找或建立具有其他參數類型的方法類型。 |
ChangeParameterType(Int32, Class) |
尋找或建立具有單一不同參數類型的方法類型。 |
ChangeReturnType(Class) |
尋找或建立具有不同傳回型別的方法型別。 |
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
DescriptorString() |
傳回這個方法類型的描述項字串。 |
Dispose() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
Dispose(Boolean) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
DropParameterTypes(Int32, Int32) |
尋找或建立方法類型,並省略某些參數類型。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
Erase() |
清除 的所有參考型別 |
FromMethodDescriptorString(String, ClassLoader) |
根據位元組程式碼描述元的拼字,尋找或建立方法類型的實例。 |
Generic() |
將參考和基本類型的所有型別轉換為 |
GenericMethodType(Int32) |
尋找或建立方法類型,其元件全部 |
GenericMethodType(Int32, Boolean) |
尋找或建立方法類型,其元件具有 |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
InsertParameterTypes(Int32, Class[]) |
尋找或建立具有其他參數類型的方法類型。 |
InsertParameterTypes(Int32, IList<Class>) |
尋找或建立具有其他參數類型的方法類型。 |
InvokeMethodType(Class) |
尋找或建立具有指定元件的方法類型。 |
InvokeMethodType(Class, Class) |
尋找或建立具有指定元件的方法類型。 |
InvokeMethodType(Class, Class, Class[]) |
尋找或建立具有指定元件的方法類型。 |
InvokeMethodType(Class, Class[]) |
尋找或建立指定方法類型的實例。 |
InvokeMethodType(Class, IList<Class>) |
尋找或建立具有指定元件的方法類型。 |
InvokeMethodType(Class, MethodType) |
尋找或建立具有指定元件的方法類型。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
LastParameterType() |
傳回這個方法型別的最後一個參數類型。 |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
ParameterArray() |
將參數類型呈現為數組, (方便的方法) 。 |
ParameterCount() |
傳回這個方法類型中的參數類型數目。 |
ParameterList() |
將參數類型呈現為清單, (方便的方法) 。 |
ParameterType(Int32) |
傳回這個方法類型內位於指定索引處的參數類型。 |
ReturnType() |
傳回這個方法類型的傳回型別。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
ToMethodDescriptorString() |
產生方法型別的位元組程式碼描述元表示。 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
Unwrap() |
將所有包裝函式類型轉換為其對應的基本類型。 |
Wait() |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wrap() |
將所有基本類型轉換為其對應的包裝函式類型。 |
明確介面實作
IJavaPeerable.Disposed() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 (繼承來源 Object) |
ITypeDescriptor+IOfMethod.ChangeParameterType(Int32, Object) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.ChangeReturnType(Object) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.DropParameterTypes(Int32, Int32) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.InsertParameterTypes(Int32, Object[]) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.ParameterArray() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.ParameterList() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.ParameterType(Int32) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
ITypeDescriptor+IOfMethod.ReturnType() |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |
GetJniTypeName(IJavaPeerable) |
方法類型代表方法控制碼接受和傳回的引數和傳回型別,或是方法控制碼呼叫端所傳遞和預期的引數和傳回型別。 |