Язык

CallSite Класс

Определение

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

[Android.Runtime.Register("java/lang/invoke/CallSite", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class CallSite : Java.Lang.Object
[<Android.Runtime.Register("java/lang/invoke/CallSite", ApiSince=26, DoNotGenerateAcw=true)>]
type CallSite = class
    inherit Object
Наследование
Производный
Атрибуты

Комментарии

A CallSite — это держатель для переменной MethodHandle, которая называется ее target. Инструкция, связанная invokedynamic с CallSite делегатами всех вызовов текущего целевого объекта сайта. Может CallSite быть связана с несколькими invokedynamic инструкциями или может быть "свободное плавающее", связанное с ней. В любом случае он может вызываться с помощью связанного дескриптора метода, который называется его #dynamicInvoker динамическим вызовом.

CallSite — это абстрактный класс, который не разрешает прямой подкласс пользователей. Он имеет три непосредственных подкласса, которые могут быть созданы или подклассы. <ul><li>, если не требуется мутируемый целевой объект, invokedynamic инструкция может быть постоянно привязана с помощью сайта вызова константы ConstantCallSite. <li>, если требуется изменяемый целевой объект с семантикой переменных, так как обновления целевого объекта должны быть немедленно и надежно следят за другими потоками, может использоваться сайт переменных переменных VolatileCallSite. <значение li>, если требуется мутируемый целевой объект, может использоваться мутируемый сайт вызова MutableCallSite. </ul>

Неконстантный сайт вызова может быть <>перемычен</em> путем изменения целевого объекта. Новый целевой объект должен иметь тот же тип MethodHandle#type(), что и предыдущий целевой объект. Таким образом, хотя сайт вызова можно повторно связать с рядом последовательных целевых объектов, он не может изменить его тип.

Ниже приведен пример использования сайтов вызовов и методов начальной загрузки, которые связывают каждый динамический сайт вызова для печати его аргументов: <blockquote>

{@code
            static void test() throws Throwable {
                // THE FOLLOWING LINE IS PSEUDOCODE FOR A JVM INSTRUCTION
                InvokeDynamic[#bootstrapDynamic].baz("baz arg", 2, 3.14);
            }
            private static void printArgs(Object... args) {
              System.out.println(java.util.Arrays.deepToString(args));
            }
            private static final MethodHandle printArgs;
            static {
              MethodHandles.Lookup lookup = MethodHandles.lookup();
              Class thisClass = lookup.lookupClass();  // (who am I?)
              printArgs = lookup.findStatic(thisClass,
                  "printArgs", MethodType.methodType(void.class, Object[].class));
            }
            private static CallSite bootstrapDynamic(MethodHandles.Lookup caller, String name, MethodType type) {
              // ignore caller and name, but match the type:
              return new ConstantCallSite(printArgs.asType(type));
            }
            }

</blockquote>

Java документации по java.lang.invoke.CallSite.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
CallSite(IntPtr, JniHandleOwnership)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
JniPeerMembers

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
Target

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

ThresholdClass

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

ThresholdType

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

Методы

Имя. Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
DynamicInvoker()

Создает дескриптор метода, эквивалентный инструкции invokedynamic, связанной с этим сайтом вызова.

Equals(Object)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
Type()

Возвращает тип целевого сайта вызова.

UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

(Унаследовано от JavaObject)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

A CallSite — это держатель для переменной MethodHandle, которая называется ее target.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к