Share via


MethodHandles.Lookup 클래스

정의

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

설명

<em>lookup 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다. 메서드 핸들은 호출할 때 액세스 검사를 수행하지 않고 만들 때 수행합니다. 따라서 메서드 핸들을 만들 때 메서드 핸들 액세스 제한을 적용해야 합니다. 이러한 제한이 적용되는 호출자 클래스를 #lookupClass 조회 클래스라고 합니다.

메서드 핸들을 만들어야 하는 조회 클래스는 를 호출 #lookup MethodHandles.lookup 하여 자체 팩터리를 만듭니다. 팩터리 개체를 Lookup 만들면 조회 클래스의 ID가 결정되고 개체에 Lookup 안전하게 저장됩니다. 그런 다음 조회 클래스(또는 해당 대리자)는 개체의 팩터리 메서드를 Lookup 사용하여 액세스 확인 멤버에 대한 메서드 핸들을 만들 수 있습니다. 여기에는 조회 클래스에 허용되는 모든 메서드, 생성자 및 필드, 심지어 프라이빗 필드도 포함됩니다.

<h1>"lookups">Lookup Factory Methods</h1> 개체의 Lookup 팩터리 메서드는 메서드, 생성자 및 필드에 대한 모든 주요 사용 사례에 해당합니다. 팩터리 메서드에서 만든 각 메서드 핸들은 특정 <em>바이트코드 동작</em>과 동일한 기능입니다. (바이트코드 동작은 Java Virtual Machine 사양의 섹션 5.4.3.5에 설명되어 있습니다.) 다음은 이러한 팩터리 메서드와 결과 메서드가 처리하는 <동작 간의 대응에 대한 요약입니다. table border=1 cellpadding=5 summary="lookup method behaviors"<>tr<>th>"equiv">lookup expression</th><th>member</th><th>bytecode behavior</th<>/tr<>tr><tdjava.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)<>/td tdFT f;<>></td/td><><(T) this.f;<>/tr><tr><td>java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)</td><td>static<br>FT f;</td><td>(T) C.f;</td></tr tr<>tr<>td<>java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)/td><td<FT f;>/td><this.f = x;></td></tr tr>><<td><java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)/td td td<static<>>br><FT f;/td td><<>C.f = arg;/td></tr tr tr tr><><td><java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)/td><td>T m(A*);</td><td>(T) this.m(arg*);</td></tr tr<>tr><td<java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)>/td td><<static>br<>T m(A*);/td><td>(T) C.m(arg*);</td<>/tr tr<>td<java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)<>>/td tdT m(A*);<><>/td><><(T) super.m(arg*);/td></tr tr tr><><td><java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)/td td><<>C(A*);/td td>><new C(arg*);</td></tr tr>><<td>java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)</td td><>(static)?<br>FT f;</td td><><(FT) aField.get(thisOrNull);/td></tr tr>><<td>java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)</td td><>(static)?<br>FT f;</td td><><aField.set(thisOrNull, arg);/td></tr tr>><<td>java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)</td td><>(static)?<br>T m(A*);</td td><><(T) aMethod.invoke(thisOrNull, arg*);/td></tr tr<>td>java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)<></td td><><C(A*);/td><td><(C) aConstructor.newInstance(arg*);/td></tr tr><td><<>java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)/td td><>(static)?<br>T m(A*);</td td>><(T) aMethod.invoke(thisOrNull, arg*);</td></tr></table>

여기서 형식 C 은 멤버를 검색하는 클래스 또는 인터페이스이며, 조회 메서드에서 라는 refc 매개 변수로 문서화됩니다. 메서드 형식 MT 은 반환 형식 및 인수 형식 T 의 시퀀스에서 구성됩니다 A*. 생성자에는 인수 형식 A* 의 시퀀스도 있으며 새로 만든 형식 C의 개체를 반환하는 것으로 간주됩니다. 및 필드 형식 FT 은 모두 MT 라는 type매개 변수로 문서화됩니다. 정식 매개 변수 this 는 형식 C의 자체 참조를 의미합니다. 형식이 있으면 항상 메서드 핸들 호출의 선행 인수입니다. (일부 protected 멤버 this 의 경우 형식이 조회 클래스로 제한될 수 있습니다. 아래 참조). 이름은 arg 다른 모든 메서드 핸들 인수를 의미합니다. 코어 리플렉션 API에 대한 코드 예제에서 액세스된 메서드 또는 필드가 정적이면 이름이 thisOrNull null 참조를 의미하며 this , 그렇지 않으면 입니다. 이름 aMethod, aFieldaConstructor 는 지정된 멤버에 해당하는 반사 개체를 사용합니다.

지정된 멤버가 가변성(즉, 메서드 또는 생성자)인 경우 반환된 메서드 핸들도 MethodHandle#asVarargsCollector 변수 arity입니다. 다른 모든 경우에서 반환된 메서드 핸들은 고정된 심각도가 됩니다. <p style="font-size:smaller;"><em>Discussion:</em> 조회된 메서드 핸들과 기본 클래스 멤버와 바이트코드 동작 간의 동등성은 ul style="font-size:smaller;"의 몇 가지 방법으로 <세분화될 수 있습니다.><li>조회 클래스의 로더에서 기호적으로 액세스할 수 없는 경우 C 동등한 Java 식 또는 바이트 코드 상수가 없는 경우에도 조회가 성공할 수 있습니다. <li>마찬가지로 조회 클래스의 로더에서 또는 MT 에 기호적으로 액세스할 수 없는 경우에도 T 조회가 성공할 수 있습니다. 예를 들어 및 MethodHandle.invoke 에 대한 MethodHandle.invokeExact 조회는 요청된 형식에 관계없이 항상 성공합니다. <li>보안 관리자가 설치된 경우 다양한 이유로 조회를 금지할 수 있습니다(아래 참조). 반면 상수 ldc 에 대한 CONSTANT_MethodHandle 지침에는 보안 관리자 검사가 적용되지 않습니다. <li>조회된 메서드의 심각도가 매우 크면 메서드 핸들 형식에 매개 변수가 너무 많기 때문에 메서드 핸들 만들기가 실패할 수 있습니다. </ul>

<h1>"access"Access">Access checking</h1> Access 검사는 메서드 핸들을 만들 때 의 Lookup팩터리 메서드에 적용됩니다. 이는 모든 호출에서 모든 호출자에 대해 액세스 검사를 수행하기 때문에 java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke 핵심 리플렉션 API와는 중요한 차이점입니다.

모든 액세스 검사는 메서드 핸들을 Lookup 만들기 위한 모든 요청과 기록된 조회 클래스를 비교하는 개체에서 시작됩니다. 단일 Lookup 개체를 사용하여 액세스 확인 메서드 핸들 수를 만들 수 있으며, 모두 단일 조회 클래스에 대해 확인됩니다.

개체는 Lookup 메타 개체 프로토콜과 같은 다른 신뢰할 수 있는 코드와 공유할 수 있습니다. 공유 Lookup 개체는 조회 클래스의 프라이빗 멤버에 대한 메서드 핸들을 만드는 기능을 위임합니다. 권한 있는 코드가 개체를 Lookup 사용하는 경우에도 액세스 검사는 원래 조회 클래스의 권한으로 제한됩니다.

포함된 클래스가 조회 클래스에 액세스할 수 없거나 원하는 클래스 멤버가 없거나 원하는 클래스 멤버가 조회 클래스에 액세스할 수 없거나 조회 개체가 멤버에 액세스할 만큼 신뢰할 수 없기 때문에 조회가 실패할 수 있습니다. 이러한 경우는 조회 시도에서 가 ReflectiveOperationException throw됩니다. 정확한 클래스는 다음 중 하나가 됩니다. ul>li NoSuchMethodException — 메서드가 요청되었지만 존재하지 않는 <경우 li>NoSuchFieldException — 필드가 요청되었지만 li>IllegalAccessException &mdash가 없는 <경우, 멤버가 있지만 액세스 검사 실패<하면 /ul><<>

일반적으로 메서드 핸들이 메서드 M 를 조회할 수 있는 조건은 조회 클래스가 에 대한 호출 M을 컴파일, 확인 및 확인할 수 있는 조건보다 더 제한적이지 않습니다. JVM이 와 같은 NoSuchMethodError예외를 발생시킬 경우 메서드 핸들 조회는 일반적으로 와 같은 NoSuchMethodException해당 확인된 예외를 발생합니다. 또한 조회에서 발생하는 메서드 핸들을 호출하는 효과는 에 대한 컴파일, 확인 및 해결된 호출 M을 실행하는 것과 정확히 동일합니다. 필드와 생성자의 경우도 마찬가지입니다. <p style="font-size:smaller;"><em>Discussion:</em> Access 검사는 명명되고 반영된 메서드, 생성자 및 필드에만 적용됩니다. 와 같은 MethodHandle#asType MethodHandle.asType다른 메서드 핸들 생성 메서드는 액세스 검사가 필요하지 않으며 개체 Lookup 와 독립적으로 사용됩니다.

원하는 멤버가 이면 조회 클래스가 protected원하는 멤버와 동일한 패키지에 있어야 하거나 해당 멤버를 상속해야 한다는 요구 사항을 포함하여 일반적인 JVM 규칙이 적용됩니다. (Java Virtual Machine 사양, 섹션 4.9.2, 5.4.3.5 및 6.4를 참조하세요.) 또한 원하는 멤버가 다른 패키지의 비정적 필드 또는 메서드인 경우 결과 메서드 핸들은 조회 클래스의 개체 또는 해당 하위 클래스 중 하나에만 적용될 수 있습니다. 이 요구 사항은 선행 this 매개 변수의 형식을 조회 클래스 자체의 C 슈퍼클래스(반드시 조회 클래스의 슈퍼클래스)로 좁혀 적용됩니다.

JVM은 수신기 인수가 현재 클래스에서 확인된 메서드 <em 및/em>과 모두 일치해야 한다는 명령과< 유사한 요구 사항을 invokespecial 적용>합니다. 다시 말하지만 이 요구 사항은 선행 매개 변수의 형식을 결과 메서드 핸들로 좁혀 적용됩니다. (Java Virtual Machine 사양 섹션 4.10.1.9를 참조하세요.)

JVM은 생성자 및 정적 이니셜라이저 블록을 특수 이름("<init>""<clinit>")이 있는 내부 메서드로 나타냅니다. 호출 명령의 내부 구문을 사용하면 일반적인 메서드인 것처럼 내부 메서드를 참조할 수 있지만 JVM 바이트코드 검증 도구는 이를 거부합니다. 이러한 내부 메서드를 조회하면 가 생성 NoSuchMethodException됩니다.

경우에 따라 동일한 최상위 선언에서 다른 클래스의 private 메서드에 액세스하는 래퍼 메서드를 만들어 Java 컴파일러에서 중첩된 클래스 간의 액세스를 가져옵니다. 예를 들어 중첩 클래스 C.D 는 , C.D.E또는 C.B와 같은 C다른 관련 클래스 내에서 프라이빗 멤버에 액세스할 수 있지만 Java 컴파일러는 관련 클래스에서 래퍼 메서드를 생성해야 할 수 있습니다. 이러한 경우 의 개체 C.ELookup 해당 프라이빗 멤버를 사용할 수 없습니다. 이 제한 Lookup#in Lookup.in 에 대한 해결 방법은 특별한 권한 상승 없이 조회를 다른 클래스의 조회로 변환 C.E 할 수 있는 방법입니다.

지정된 조회 개체에 허용되는 액세스는 해당 집합 #lookupModes lookupModes에 따라 조회 클래스에서 일반적으로 액세스할 수 있는 멤버의 하위 집합으로 제한될 수 있습니다. 예를 들어 메서드는 #publicLookup publicLookup 공용 클래스의 공용 멤버에만 액세스할 수 있는 조회 개체를 생성합니다. 호출자 구분 메서드 #lookup lookup 는 호출자 클래스를 기준으로 전체 기능을 사용하여 조회 개체를 생성하여 지원되는 모든 바이트코드 동작을 에뮬레이트합니다. 또한 메서드는 Lookup#in Lookup.in 원래 조회 개체보다 액세스 모드가 적은 조회 개체를 생성할 수 있습니다.

<p style="font-size:smaller;"> " privacc"><em>프라이빗 액세스에 대한 토론:</em> #lookupModes 조회 모드에 멤버 액세스 가능성이 private 포함된 경우 조회에 프라이빗 액세스</em>이 있다고 말합니다<>. 다른 곳에서 관련 메서드에 설명된 것처럼 프라이빗 액세스 권한이 있는 조회만 ul style="font-size:smaller;">< 기능을 <보유합니다.li>access private fields, method, and constructor of the lookup class <li>create method handles- caller sensitive 메서드(예:<Class.forName li>create 메서드 핸들<>Lookup#findSpecial emulate invokespecial)는 동일한 패키지 멤버 </ul><p style="font-size 내의 다른 클래스에 대한 프라이빗 액세스 권한이 있는 lookup 클래스 li create Lookup#in delegated lookup objects 에 액세스할 수 있는 클래스<에>대한 패키지 액세스 검사를 피합니다. 작음;"> 이러한 각 권한은 프라이빗 액세스 권한이 있는 조회 개체를 원래 클래스로 안전하게 추적할 수 있으며, 바이트코드 동작 및 Java 언어 액세스 권한을 메서드 핸들을 통해 안정적으로 결정하고 에뮬레이트할 수 있습니다.

<h1>"secmgr">Security Manager interactions</h1> bytecode 지침은 관련 클래스 로더의 클래스만 참조할 수 있지만 이 API는 해당 개체에 대한 참조를 사용할 수 있는 한 모든 클래스에서 메서드를 검색할 Class 수 있습니다. 이러한 교차 로더 참조는 핵심 리플렉션 API에서도 가능하며 또는 getfield와 같은 invokestatic 명령을 바이트 코딩할 수 없습니다. 애플리케이션이 이러한 교차 로더 참조를 검사 수 있도록 하는 java.lang.SecurityManager 보안 관리자 API가 있습니다. 이러한 검사는 API와 핵심 리플렉션 API(에 있음)에 java.lang.Class Class모두 MethodHandles.Lookup 적용됩니다.

보안 관리자가 있는 경우 멤버 조회에는 추가 검사가 적용됩니다. 보안 관리자에 대해 1~3번 호출합니다. 이러한 호출은 을 java.lang.SecurityException SecurityExceptionthrow하여 액세스를 거부할 수 있습니다. 를 보안 관리자로 정의하고, lookc 현재 조회 개체의 조회 클래스로, refc 멤버를 찾고 있는 포함하는 클래스로, defc 멤버가 실제로 정의된 클래스로 정의 smgr 합니다. 현재 조회 개체에 프라이빗 액세스 권한이 없는 경우 값 lookc 은 em>not present</em>으로 <정의됩니다. 호출은 다음 규칙에 <따라 수행됩니다. ul<>li><b>Step 1:</b>lookc 가 없거나 클래스 로더가 클래스 로더와 동일하지 않거나 클래스 로더 SecurityManager#checkPackageAccess smgr.checkPackageAccess(refcPkg)refc의 상위 항목이 아닌 경우 가 호출됩니다. 여기서 refcPkg 는 의 refc패키지입니다. <li><b>Step 2:</b> 검색된 멤버가 public이 아니고 lookc 존재하지 SecurityManager#checkPermission smgr.checkPermission 않는 경우 with RuntimePermission("accessDeclaredMembers") 가 호출됩니다. <li><b>3:</b> 검색된 멤버가 public이 아니고 가 없는 경우 lookc 및 가 다른 SecurityManager#checkPackageAccess smgr.checkPackageAccess(defcPkg) 경우 defcrefc 가 호출되고, 여기서 defcPkg 는 의 defc패키지입니다. </ul> 보안 검사는 다른 액세스 검사를 통과한 후에 수행됩니다. 따라서 위의 규칙은 공용이거나 멤버에 액세스할 수 있는 권한이 있는 조회 클래스에서 액세스되는 멤버를 사전 공급합니다.

<h1>"callens">호출자 구분 메서드</h1> 소수의 Java 메서드에는 호출자 민감도라는 특수 속성이 있습니다. <em>호출자 구분</em> 메서드는 직접 호출자의 ID에 따라 다르게 동작할 수 있습니다.

호출자 구분 메서드에 대한 메서드 핸들이 요청되면 바이트코드 동작에 대한 일반 규칙이 적용되지만 특별한 방식으로 조회 클래스를 고려합니다. 결과 메서드 핸들은 조회 클래스에 포함된 명령에서 호출된 것처럼 동작하므로 호출자 구분 메서드는 조회 클래스를 검색합니다. 반면 메서드 핸들의 호출자는 무시됩니다. 따라서 호출자 구분 메서드의 경우 조회 클래스가 다르면 메서드 핸들이 다르게 동작할 수 있습니다.

조회 개체 #publicLookup publicLookup()가 또는 프라이빗 액세스 권한이 없는 다른 조회 개체인 경우 조회 클래스는 무시됩니다. 이러한 경우 호출자 구분 메서드 핸들을 만들 수 없고, 액세스가 금지되며, 조회가 와 함께 IllegalAccessException실패합니다. <p style="font-size:smaller;"><em>Discussion:</em> 예를 들어 호출자 구분 메서드 java.lang.Class#forName(String) Class.forName(x) 는 호출하는 클래스의 클래스 로더에 따라 다양한 클래스를 반환하거나 다양한 예외를 throw할 수 있습니다. 바이트코드 동작을 Class.forName 결정하는 합리적인 방법이 없으므로 의 공용 조회가 실패합니다. <p style="font-size:smaller;"> 애플리케이션 캐시 메서드가 광범위한 공유를 위해 핸들을 캐시하는 경우 를 사용하여 publicLookup() 만들어야 합니다. 조회 Class.forName가 있는 경우 실패하고 애플리케이션은 이 경우 적절한 조치를 취해야 합니다. 나중에 조회(부트스트랩 메서드를 호출하는 동안)가 호출자의 특정 ID를 통합하여 메서드에 액세스할 수 있도록 할 수 있습니다. <p style="font-size:smaller;"> 함수 MethodHandles.lookup 는 조회를 위한 보안 기반이 될 수 있도록 호출자를 구분합니다. JSR 292 API의 거의 모든 다른 메서드는 조회 개체를 사용하여 액세스 요청을 검사.

에 대한 Java 설명서입니다 java.lang.invoke.MethodHandles.Lookup.

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

필드

Package
사용되지 않음.

액세스(기본 액세스)를 package 나타내는 단일 비트 마스크로, 의 #lookupModes lookupModes결과에 영향을 줄 수 있습니다.

Private
사용되지 않음.

의 결과에 #lookupModes lookupModes영향을 줄 수 있는 액세스를 나타내는 private 단일 비트 마스크입니다.

Protected
사용되지 않음.

의 결과에 #lookupModes lookupModes영향을 줄 수 있는 액세스를 나타내는 protected 단일 비트 마스크입니다.

Public
사용되지 않음.

의 결과에 #lookupModes lookupModes영향을 줄 수 있는 액세스를 나타내는 public 단일 비트 마스크입니다.

속성

Class

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

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

(다음에서 상속됨 Object)
JniPeerMembers

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

PeerReference

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)

메서드

Bind(Object, String, MethodType)

비정적 메서드에 대한 초기 바인딩된 메서드 핸들을 생성합니다.

Clone()

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

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

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

(다음에서 상속됨 Object)
FindConstructor(Class, MethodType)

지정된 형식의 생성자를 사용하여 개체를 만들고 초기화하는 메서드 핸들을 생성합니다.

FindGetter(Class, String, Class)

비정적 필드에 대한 읽기 권한을 부여하는 메서드 핸들을 생성합니다.

FindSetter(Class, String, Class)

비정적 필드에 대한 쓰기 액세스 권한을 부여하는 메서드 핸들을 생성합니다.

FindSpecial(Class, String, MethodType, Class)

가상 메서드에 대한 초기 바인딩된 메서드 핸들을 생성합니다.

FindStatic(Class, String, MethodType)

정적 메서드에 대한 메서드 핸들을 생성합니다.

FindStaticGetter(Class, String, Class)

정적 필드에 대한 읽기 권한을 부여하는 메서드 핸들을 생성합니다.

FindStaticSetter(Class, String, Class)

정적 필드에 대한 쓰기 액세스 권한을 부여하는 메서드 핸들을 생성합니다.

FindStaticVarHandle(Class, String, Class)

형식의 클래스에 선언된 형식 type 의 정적 필드에 name 대한 액세스를 제공하는 VarHandle을 생성합니다decl.

FindVarHandle(Class, String, Class)

형식의 클래스에 선언된 형식 type 의 비정적 필드에 name 대한 액세스를 제공하는 VarHandle을 생성합니다recv.

FindVirtual(Class, String, MethodType)

가상 메서드에 대한 메서드 핸들을 생성합니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
In(Class)

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

JavaFinalize()

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

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

조회를 수행하는 클래스를 알려줍니다.

LookupModes()

이 조회 개체가 생성할 수 있는 멤버의 액세스 보호 클래스를 알려줍니다.

Notify()

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

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

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

(다음에서 상속됨 Object)
RevealDirect(MethodHandle)

이 조회 개체 또는 유사한 개체에서 만든 직접 메서드 핸들을 해독합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

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

(다음에서 상속됨 Object)
Unreflect(Method)

조회 클래스에 권한이 있는 경우 m에 대한 직접 메서드 핸들을 만듭니다.

UnreflectConstructor(Constructor)

반영된 생성자에 대한 메서드 핸들을 생성합니다.

UnreflectGetter(Field)

반영된 필드에 대한 읽기 권한을 부여하는 메서드 핸들을 생성합니다.

UnreflectSetter(Field)

반영된 필드에 대한 쓰기 액세스 권한을 부여하는 메서드 핸들을 생성합니다.

UnreflectSpecial(Method, Class)

반영된 메서드에 대한 메서드 핸들을 생성합니다.

UnreflectVarHandle(Field)

형식의 클래스에 선언된 형식 T 의 반영된 필드에 f 대한 액세스 권한을 부여하는 VarHandle을 생성합니다R.

UnregisterFromRuntime()

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

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

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

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

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

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

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

GetJniTypeName(IJavaPeerable)

<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다.

적용 대상