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.4.8 和 5.4.3.5 部分。
当 JVM 从描述符字符串具体化时 MethodType ,必须可访问描述符中命名的所有类,并且将加载这些类。 (但类不需要初始化,与 .一样 CONSTANT_Class)首次派生对象之前 MethodType ,可能随时发生此加载。
Java文档java.lang.invoke.MethodType。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
属性
| 名称 | 说明 |
|---|---|
| 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, Boolean) |
查找或创建其组件具有 |
| GenericMethodType(Int32) |
查找或创建其组件全部的方法 |
| 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) |
| ToArray<T>() |
方法类型表示方法句柄接受和返回的参数和返回类型,或由方法句柄调用方传递和预期的参数和返回类型。 (继承自 Object) |
| ToMethodDescriptorString() |
生成方法类型的字节代码描述符表示形式。 |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
方法类型表示方法句柄接受和返回的参数和返回类型,或由方法句柄调用方传递和预期的参数和返回类型。 (继承自 Object) |
| Unwrap() |
将所有包装器类型转换为其相应的基元类型。 |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <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.ReturnType() |
方法类型表示方法句柄接受和返回的参数和返回类型,或由方法句柄调用方传递和预期的参数和返回类型。 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
方法类型表示方法句柄接受和返回的参数和返回类型,或由方法句柄调用方传递和预期的参数和返回类型。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |