MethodHandles.ExplicitCastArguments(MethodHandle, MethodType) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает дескриптор метода, который адаптирует тип данного дескриптора метода к новому типу по парным аргументам и преобразованию возвращаемого типа.
[Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExplicitCastArguments(Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodType? newType);
[<Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExplicitCastArguments : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Параметры
- target
- MethodHandle
Дескриптор метода для вызова после повторного типа аргументов
- newType
- MethodType
ожидаемый тип нового дескриптора метода
Возвращаемое значение
Дескриптор метода, который делегирует целевому объекту после выполнения любых необходимых преобразований аргументов и упорядочивает все необходимые преобразования возвращаемых значений.
- Атрибуты
Комментарии
Создает дескриптор метода, который адаптирует тип данного дескриптора метода к новому типу по парным аргументам и преобразованию возвращаемого типа. Исходный тип и новый тип должны иметь одинаковое количество аргументов. Результирующий дескриптор метода гарантированно сообщает типу, который равен требуемому новому типу.
Если исходный тип и новый тип равны, возвращает целевой объект.
Те же преобразования разрешены, MethodHandle#asType MethodHandle.asTypeа некоторые дополнительные преобразования также применяются, если эти преобразования завершаются ошибкой. Заданные типы <>em T0</>em,>< em T1</>em, одно из следующих преобразований применяется, если это возможно, прежде или вместо любых преобразований, выполненных asType: <ul<>li>, если <em>T0</>em и>< em T1/>em являются ссылками, и <em>T1</em> является типом интерфейса, то значение типа>< em T0</>em передается как <em>T1<</em> без приведения. (Это лечение интерфейсов следует использованию средства проверки байт-кода.) <li>Если <em>T0</>em является логическим и <em>T1/em> является другим примитивом, логическое значение преобразуется в байтовое значение, 1< для true, 0 для false. (Это лечение следует использованию средства проверки байт-кода.) <li>Если <em>T1</>em является логическим, и <em>T0/em> является другим примитивом, <em>T0<</em> преобразуется в байт через преобразование приведения Java (JLS 5.5), а низкий порядок результата проверяется, как будто.(x & 1) != 0
<Li>, если <em>T0</>em и <em>T1</em> являются примитивами, отличные от логического, то применяется преобразование приведения Java (JLS 5.5). (В частности, em>T0</>em преобразуется в <em>T1</em> путем <расширения и /или сужения.) <li>Если <em>T0</>em является ссылкой и <em>T1</em> примитивом, преобразование распаковки будет применено во время выполнения, возможно, за которым следует преобразование Java приведения (JLS 5.5) на примитивное значение, возможно, за преобразованием из байта в логический путем тестирования низкого порядка.
<li>, если <em>T0</> em является ссылкой и <em>T1</em> примитивом, и если ссылка имеет значение NULL во время выполнения, будет введено нулевое значение.
</ul>
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".