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#invokeExact MethodHandle.invokeExact
和 MethodHandle#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.MethodType
Java 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。
属性
Class |
返回此 |
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() |
擦除 对 |
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 <通知/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) |
方法类型表示方法句柄接受并返回的参数和返回类型,或方法句柄调用方传递和预期的参数和返回类型。 |