語言

MethodType 類別

定義

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

[Android.Runtime.Register("java/lang/invoke/MethodType", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class MethodType : Java.Lang.Object, IDisposable, 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
繼承
MethodType
屬性
實作

備註

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。 方法型別必須在方法句柄與所有呼叫者之間正確匹配,JVM 的操作會在 強制匹配,特別是在呼叫 MethodHandle#invokeExact MethodHandle.invokeExactMethodHandle#invoke MethodHandle.invoke時,以及執行 invokedynamic 指令時。

此結構是一種回傳型別,並伴隨任意數量的參數型別。 類型(primitive、 void、 和 reference)由物件表示 Class 。 (為了方便說明,我們 void 將其視為一種類型。事實上,它表示沒有回傳型。)

所有的 MethodType 實例都是不變的。 如果兩個例子相等,則完全可以互換。 等號依賴於返回與參數類型的成對對應,其他皆不依賴。

此類型只能透過工廠方法建立。 所有工廠方法都可以快取值,但快取功能並非保證。 有些工廠方法是靜態的,而另一些則是虛擬方法,透過修改前置方法類型,例如透過改變所選參數。

操作參數型態群組的工廠方法系統性地呈現兩個版本,使得 Java 陣列與 Java 清單都能用於參數型別群組。 查詢方法 parameterArrayparameterList 提供陣列與清單的選擇。

MethodType 物件有時會從位元碼指令(如 invokedynamic,特別是從類別檔案常數池中與指令相關的描述符字串)衍生而來。

像類別和字串一樣,方法類型也可以直接以常數形式表示在類別檔案的常數池中。 方法類型可由 ldc 指向適當 CONSTANT_MethodType 常數池條目的指令載入。 該條目指 CONSTANT_Utf8 的是描述詞串的拼寫。 (關於方法型態常數的完整細節,請參閱 Java 虛擬機器規範的第 4.4.8 與 5.4.3.5 節。)

當 JVM 從描述符字串實現 a MethodType 時,描述符中所有命名的類別必須是可存取的,並且會被載入。 (但類別不必像 a CONSTANT_Class那樣初始化。)此載荷可在物件首次導出之前的任何時間 MethodType 發生。

Java 文件 java.lang.invoke.MethodType

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
HasPrimitives

若此類型包含原始參數或回傳值,會報告。

HasWrappers

報告此類型是否包含包裝函式參數或回傳值。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
JniPeerMembers

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)
ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)

方法

名稱 Description
AppendParameterTypes(Class[])

尋找或建立一個帶有額外參數型的方法型別。

AppendParameterTypes(IList<Class>)

尋找或建立一個帶有額外參數型的方法型別。

ChangeParameterType(Int32, Class)

尋找或建立一個具有單一不同參數型的方法型別。

ChangeReturnType(Class)

尋找或建立一個具有不同回傳類型的方法型別。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
DescriptorString()

回傳此方法類型的描述符字串。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
DropParameterTypes(Int32, Int32)

尋找或建立一個方法型別,但省略部分參數型別。

Equals(Object)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Erase()

刪除 所有 的 Object參考類型。

FromMethodDescriptorString(String, ClassLoader)

尋找或建立某個方法型別的實例,根據其位元組碼描述符的拼寫。

Generic()

將所有類型(包括參考型與原始型) Object轉換為 。

GenericMethodType(Int32, Boolean)

尋找或建立一個方法型別,其組件包含 Object 一個可選的尾隨 Object[] 陣列。

GenericMethodType(Int32)

尋找或建立一個所有元件皆為 Object的方法型態。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
InsertParameterTypes(Int32, Class[])

尋找或建立一個帶有額外參數型的方法型別。

InsertParameterTypes(Int32, IList<Class>)

尋找或建立一個帶有額外參數型的方法型別。

InvokeMethodType(Class, Class, Class[])

用給定元件尋找或建立一種方法型別。

InvokeMethodType(Class, Class)

用給定元件尋找或建立一種方法型別。

InvokeMethodType(Class, Class[])

尋找或建立給定方法類型的實例。

InvokeMethodType(Class, IList<Class>)

用給定元件尋找或建立一種方法型別。

InvokeMethodType(Class, MethodType)

用給定元件尋找或建立一種方法型別。

InvokeMethodType(Class)

用給定元件尋找或建立一種方法型別。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
LastParameterType()

回傳此方法類型最後一個參數型別。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
ParameterArray()

以陣列形式呈現參數型別(一種便利方法)。

ParameterCount()

回傳此方法類型中的參數類型數量。

ParameterList()

以列表形式呈現參數類型(一種方便方法)。

ParameterType(Int32)

在此方法類型內,回傳指定索引的參數型別。

ReturnType()

回傳此方法類型的回傳類型。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToMethodDescriptorString()

產生方法類型的位元組碼描述符表示。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Unwrap()

將所有包裝型態轉換為對應的原始型別。

Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wrap()

將所有原始型態轉換為對應的包裝型別。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

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()

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

方法型別代表方法句柄接受並回傳的參數與回傳型別,或由方法代碼呼叫者傳遞並預期的參數與回傳型別。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於