MethodType 类

定义

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。

[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
继承
MethodType
属性
实现

注解

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。 方法类型必须在方法句柄与其所有调用方之间正确匹配,并且 JVM 的操作会在 以下位置强制实施此匹配:特别是在调用 MethodHandle#invokeExact MethodHandle.invokeExactMethodHandle#invoke MethodHandle.invoke期间,以及执行 invokedynamic 指令期间。

结构是一个返回类型,附带任意数量的参数类型。 基元、 void和 引用) (类型由 Class 对象表示。 (为了便于解释,我们将 void 它视为一种类型。事实上,它表示不存在返回类型.)

的所有实例都是不可变的 MethodType 。 如果两个实例相等,则它们完全可互换。 相等性取决于返回类型和参数类型的成对对应关系,不依赖于其他任何类型。

只能通过工厂方法创建此类型。 所有工厂方法都可以缓存值,但无法保证缓存。 某些工厂方法是静态的,而其他工厂方法是修改前兆方法类型的虚拟方法,例如,通过更改所选参数。

对参数类型组进行操作的工厂方法以两个版本系统地呈现,因此 Java 数组和 Java 列表都可用于处理参数类型的组。 查询方法 parameterArray 以及 parameterList 提供数组和列表之间的选择。

MethodType 对象有时派生自字节代码指令,例如 invokedynamic,特别是从与类文件的常量池中的指令关联的类型描述符字符串。

与类和字符串一样,方法类型也可以直接在类文件的常量池中表示为常量。 方法类型可以通过引用合适的CONSTANT_MethodType常量池条目的指令加载ldc。 条目引用 CONSTANT_Utf8 描述符字符串的拼写。 (有关方法类型常量的完整详细信息,请参阅 Java 虚拟机规范.4.8 和 5.4.3.5 部分 )

当 JVM 从描述符字符串中具体化 时 MethodType ,描述符中名为 的所有类都必须可访问,并且将加载。 (但不需要初始化类,就像 CONSTANT_Class.) 首次派生对象之前 MethodType ,此加载可能随时发生。

java.lang.invoke.MethodTypeJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
HasPrimitives

报告此类型是否包含基元参数或返回值。

HasWrappers

报告此类型是否包含包装器参数或返回值。

JniIdentityHashCode

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。

(继承自 Object)
JniPeerMembers

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。

PeerReference

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

(继承自 Object)
ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

(继承自 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()

擦除 对 Object的所有引用类型。

FromMethodDescriptorString(String, ClassLoader)

查找或创建方法类型的实例,给定其字节代码描述符的拼写。

Generic()

将引用和基元的所有类型转换为 Object

GenericMethodType(Int32)

查找或创建其组件均为 Object的方法类型。

GenericMethodType(Int32, Boolean)

查找或创建其组件 Object 包含可选尾随 Object[] 数组的方法类型。

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 <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/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)

方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。

适用于