언어

MutableCallSite 클래스

정의

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

[Android.Runtime.Register("java/lang/invoke/MutableCallSite", ApiSince=26, DoNotGenerateAcw=true)]
public class MutableCallSite : Java.Lang.Invoke.CallSite
[<Android.Runtime.Register("java/lang/invoke/MutableCallSite", ApiSince=26, DoNotGenerateAcw=true)>]
type MutableCallSite = class
    inherit CallSite
상속
MutableCallSite
특성

설명

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다. invokedynamic 대리인에 MutableCallSite 연결된 명령은 사이트의 현재 대상에 대한 모든 호출을 나타냅니다. 변경 가능한 호출 사이트의 CallSite#dynamicInvoker 동적 호출자도 사이트의 현재 대상에 대한 각 호출을 위임합니다.

다음은 메서드 핸들 체인에 상태 변수를 도입하는 변경 가능한 호출 사이트의 예입니다. <-- JavaDocExamplesTest.testMutableCallSite --><blockquote>

{@code
            MutableCallSite name = new MutableCallSite(MethodType.methodType(String.class));
            MethodHandle MH_name = name.dynamicInvoker();
            MethodType MT_str1 = MethodType.methodType(String.class);
            MethodHandle MH_upcase = MethodHandles.lookup()
                .findVirtual(String.class, "toUpperCase", MT_str1);
            MethodHandle worker1 = MethodHandles.filterReturnValue(MH_name, MH_upcase);
            name.setTarget(MethodHandles.constant(String.class, "Rocky"));
            assertEquals("ROCKY", (String) worker1.invokeExact());
            name.setTarget(MethodHandles.constant(String.class, "Fred"));
            assertEquals("FRED", (String) worker1.invokeExact());
            // (mutation can be continued indefinitely)
            }

</blockquote>

한 번에 여러 위치에서 동일한 통화 사이트를 사용할 수 있습니다. <blockquote>

{@code
            MethodType MT_str2 = MethodType.methodType(String.class, String.class);
            MethodHandle MH_cat = lookup().findVirtual(String.class,
              "concat", methodType(String.class, String.class));
            MethodHandle MH_dear = MethodHandles.insertArguments(MH_cat, 1, ", dear?");
            MethodHandle worker2 = MethodHandles.filterReturnValue(MH_name, MH_dear);
            assertEquals("Fred, dear?", (String) worker2.invokeExact());
            name.setTarget(MethodHandles.constant(String.class, "Wilma"));
            assertEquals("WILMA", (String) worker1.invokeExact());
            assertEquals("Wilma, dear?", (String) worker2.invokeExact());
            }

</blockquote>

<em>대상 값의 비동기화:</em> 변경 가능한 호출 사이트의 대상에 대한 쓰기는 다른 스레드가 업데이트된 값을 인식하도록 강요하지 않습니다. 업데이트된 호출 사이트를 기준으로 적절한 동기화 작업을 수행하지 않는 스레드는 이전 대상 값을 캐시하고 새 대상 값의 사용을 무기한 연기할 수 있습니다. 개체 필드에 적용된 Java 메모리 모델의 일반적인 결과입니다.

자주 업데이트되는 대상 값의 경우 VolatileCallSite 휘발성 호출 사이트를 대신 사용하는 것이 좋습니다.

에 대한 java.lang.invoke.MutableCallSiteJava 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

생성자

속성 Description
MutableCallSite(IntPtr, JniHandleOwnership)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

MutableCallSite(MethodHandle)

초기 대상 메서드 핸들을 사용하여 호출 사이트 개체를 만듭니다.

MutableCallSite(MethodType)

지정된 메서드 형식을 사용하여 빈 호출 사이트 개체를 만듭니다.

속성

속성 Description
Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

interop 런타임에 의해 이 Java 피어에 할당된 ID 해시 코드를 가져옵니다.

(다음에서 상속됨 Object)
JniManagedPeerState

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
JniPeerMembers

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

PeerReference

이 Java 피어에 대한 JNI 개체 참조를 가져옵니다.

(다음에서 상속됨 Object)
Target

호출 사이트의 대상 메서드를 반환합니다. 이 메서드는 기본 필드 MutableCallSite처럼 동작합니다. -또는- 이 호출 사이트의 대상 메서드를 일반 변수로 업데이트합니다.

ThresholdClass

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

ThresholdType

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

메서드

속성 Description
Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
Dispose()

이 Java 피어에서 보유한 리소스를 해제합니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

이 Java 피어에서 보유한 리소스를 해제합니다.

(다음에서 상속됨 Object)
DisposeUnlessReferenced()

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
DynamicInvoker()

이 호출 사이트에 연결된 명령에 해당하는 invokedynamic 메서드 핸들을 생성합니다.

Equals(Object)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()
사용되지 않음.

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
ToArray<T>()

이 Java 배열 래퍼에서 관리되는 배열을 만듭니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
Type()

이 호출 사이트의 대상 유형을 반환합니다.

(다음에서 상속됨 CallSite)
UnregisterFromRuntime()

interop 런타임에서 이 Java 피어의 등록을 취소합니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받><거나 ><>중단/종료<합니다.>

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

속성 Description
IJavaPeerable.Disposed()

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.Finalized()

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

(다음에서 상속됨 JavaObject)

확장명 메서드

속성 Description
GetJniTypeName(IJavaPeerable)

인스턴스 self형식의 JNI 이름을 가져옵니다.

JavaAs<TResult>(IJavaPeerable)

형식self을 강제 TResult 변환하여 강제 변환이 Java 쪽에서 유효한지 확인합니다.

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

A MutableCallSiteCallSite 대상 변수가 일반 필드처럼 동작하는 경우입니다.

TryJavaCast<TResult>(IJavaPeerable, TResult)

형식self을 강제 TResult 변환하여 강제 변환이 Java 쪽에서 유효한지 확인합니다.

적용 대상