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
- Наследование
- Атрибуты
- Реализации
Комментарии
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. Типы методов должны быть правильно сопоставлены между дескриптором метода и всеми вызывающими средствами, а операции JVM применяют это сопоставление, в частности во время вызовов MethodHandle#invokeExact MethodHandle.invokeExact и MethodHandle#invoke MethodHandle.invokeво время выполнения инструкций invokedynamic .
Структура — это возвращаемый тип, сопровождаемый любым количеством типов параметров. Типы (примитивные и voidссылочные) представлены объектами Class . (Для простоты экспозиции мы лечимся void , как если бы это был тип. На самом деле это означает отсутствие возвращаемого типа.)
Все экземпляры MethodType неизменяемы. Два экземпляра полностью взаимозаменяемы, если они равны. Равенство зависит от парной соответствия типов возвращаемых и параметров и ничего другого.
Этот тип можно создать только с помощью методов фабрики. Все методы фабрики могут кэшировать значения, хотя кэширование не гарантируется. Некоторые методы фабрики являются статическими, а другие — виртуальными методами, которые изменяют типы методов предшественника, например путем изменения выбранного параметра.
Методы фабрики, работающие с группами типов параметров, систематически представлены в двух версиях, поэтому для работы с группами типов параметров можно использовать как Java массивы, так и списки Java. Методы parameterArray запроса также parameterList предоставляют выбор между массивами и списками.
MethodType объекты иногда являются производными от инструкций байт-кода, таких как invokedynamic, в частности, из строк дескриптора типа, связанных с инструкциями в пуле констант файла класса.
Как и классы и строки, типы методов также могут быть представлены непосредственно в пуле констант файла класса в виде констант. Тип метода может быть загружен инструкцией ldc , которая ссылается на подходящую CONSTANT_MethodType запись пула констант. Запись ссылается на CONSTANT_Utf8 орфографию для строки дескриптора. (Полные сведения о константах типа метода см. в разделах 4.4.8 и 5.4.3.5 спецификации виртуальных машин Java.)
Когда JVM материализует MethodType строку дескриптора, все классы, именованные в дескрипторе, должны быть доступны и будут загружены. (Но классы не должны инициализироваться, как и в случае с CONSTANT_Class.) Эта загрузка может происходить в любое время до MethodType первого производного объекта.
Java документации по java.lang.invoke.MethodType.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| HasPrimitives |
Сообщает, содержит ли этот тип примитивный аргумент или возвращаемое значение. |
| HasWrappers |
Сообщает, содержит ли этот тип аргумент-оболочку или возвращаемое значение. |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. (Унаследовано от JavaObject) |
| JniPeerMembers |
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
Методы
| Имя. | Описание |
|---|---|
| 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() |
Удаляет все ссылочные типы |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. (Унаследовано от JavaObject) |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToMethodDescriptorString() |
Создает дескриптор байтового кода для типа метода. |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Unwrap() |
Преобразует все типы оболочки в соответствующие примитивные типы. |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wrap() |
Преобразует все примитивные типы в соответствующие типы оболочки. |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| 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() |
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Тип метода представляет аргументы и возвращаемый тип, принятый и возвращаемый дескриптором метода, или аргументы и возвращаемый тип, переданный и ожидаемый вызывающим обработчиком метода. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |