MethodHandles.Lookup 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
<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
- 상속
- 특성
설명
<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다. 메서드 핸들은 호출할 때 액세스 검사를 수행하지 않고 만들 때 수행합니다. 따라서 메서드 핸들을 만들 때 메서드 핸들 액세스 제한을 적용해야 합니다. 이러한 제한이 적용되는 호출자 클래스를 #lookupClass 조회 클래스라고 합니다.
메서드 핸들을 만들어야 하는 조회 클래스는 자체 팩터리를 만들기 위해 호출 #lookup MethodHandles.lookup
됩니다. 팩터리 개체가 Lookup
만들어지면 조회 클래스의 ID가 결정되고 개체에 Lookup
안전하게 저장됩니다. 그런 다음 조회 클래스(또는 해당 대리자)는 개체의 Lookup
팩터리 메서드를 사용하여 액세스 확인 멤버에 대한 메서드 핸들을 만들 수 있습니다. 여기에는 조회 클래스에 허용되는 모든 메서드, 생성자 및 필드, 심지어 프라이빗 필드도 포함됩니다.
<h1>"lookups">Lookup Factory 메서드</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 td></td><java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)
/td>><<FT f;
/td(T) this.f;
><></td/tr><tr><td><java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)
/td td><>static
<br>FT f;
</td><><(T) C.f;
/td<>/tr tr><td><><java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)
/td><tdFT f;
<>/tdthis.f = x;
<>></td></tr tr<><>td><java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)
/td td>static
<><br<>FT f;
/td td/td><<C.f = arg;
><>/tr tr tr tr><>< td ><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<>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 td>><T m(A*);
</td/td<<(T) super.m(arg*);
>>></tr 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><><(C) aConstructor.newInstance(arg*);
/td<>/tr tr><tr><td/tdjava.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)
>< 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에 대한 코드 예제에서 액세스된 메서드 또는 필드가 정적 this
이면 이름이 thisOrNull
null 참조를 나타냅니다. 이름 aMethod
및 aField
aConstructor
지정된 멤버에 해당하는 반사 개체를 사용합니다.
지정된 멤버가 가변 arity(즉, 메서드 또는 생성자)인 경우 반환된 메서드 핸들도 MethodHandle#asVarargsCollector 변수 arity입니다. 다른 모든 경우에서 반환된 메서드 핸들은 고정된 arity입니다. <p style="font-size:smaller;"><em>Discussion:</em> 조회된 메서드 핸들과 기본 클래스 멤버와 바이트코드 동작 간의 동등성은 몇 가지 방법으로 세분화될 수 있습니다. <ul style="font-size:smaller;"><li>조회 클래스의 로더에서 기호적으로 액세스할 수 없는 경우 C
동등한 Java 식이나 바이트 코드 상수가 없는 경우에도 조회가 성공할 수 있습니다. <li>마찬가지로 조회 클래스의 로더에서 기호적으로 액세스할 수 있거나 MT
액세스할 수 없는 경우에도 T
조회가 성공할 수 있습니다. 예를 들어 요청된 형식에 MethodHandle.invokeExact
관계없이 조회는 MethodHandle.invoke
항상 성공합니다. <li>보안 관리자가 설치된 경우 다양한 이유로 조회를 금지할 수 있습니다(아래 참조). 반면 상수에 ldc
대한 CONSTANT_MethodHandle
명령은 보안 관리자 검사의 적용을 받지 않습니다. <li>조회된 메서드에 매우 큰 기한이 있는 경우 메서드 핸들 형식에 매개 변수가 너무 많기 때문에 메서드 핸들 만들기가 실패할 수 있습니다. </ul>
<h1>"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 검사는 명명되고 반영된 메서드, 생성자 및 필드에만 적용됩니다. 다른 메서드는 액세스 검사가 필요하지 않고 개체와 독립적으로 Lookup
사용되는 등의 MethodHandle#asType MethodHandle.asType
생성 메서드를 처리합니다.
원하는 멤버인 경우 조회 클래스가 protected
원하는 멤버와 동일한 패키지에 있어야 하거나 해당 멤버를 상속해야 한다는 요구 사항을 포함하여 일반적인 JVM 규칙이 적용됩니다. (Java Virtual Machine 사양, 섹션 4.9.2, 5.4.3.5 및 6.4를 참조하세요.) 또한 원하는 멤버가 다른 패키지의 비정적 필드 또는 메서드인 경우 결과 메서드 핸들은 조회 클래스의 개체 또는 해당 서브클래스 중 하나에만 적용될 수 있습니다. 이 요구 사항은 선행 this
매개 변수의 형식을 조회 클래스 자체의 상위 클래스(반드시 조회 클래스의 슈퍼클래스)로 C
좁혀 적용됩니다.
JVM은 수신자 인수가 현재 클래스와 invokespecial
확인된 메서드 <em>및/em> 모두와< 일치해야 한다는 명령에 유사한 요구 사항을 적용합니다. 이 요구 사항은 선행 매개 변수의 형식을 결과 메서드 핸들로 좁혀 적용됩니다. (Java Virtual Machine 사양 섹션 4.10.1.9를 참조하세요.)
JVM은 생성자 및 정적 이니셜라이저 블록을 특수 이름 및"<init>"
"<clinit>"
)이 있는 내부 메서드로 나타냅니다. 호출 명령의 내부 구문을 사용하면 일반적인 메서드인 것처럼 내부 메서드를 참조할 수 있지만 JVM 바이트코드 검증 도구는 이를 거부합니다. 이러한 내부 메서드를 조회하면 NoSuchMethodException
.
경우에 따라 동일한 최상위 선언에서 다른 클래스의 private 메서드에 액세스하는 래퍼 메서드를 만들어 Java 컴파일러에서 중첩된 클래스 간의 액세스를 얻습니다. 예를 들어 중첩된 클래스 C.D
는 또는 Java 컴파일러와 같은 C
C.D.E
C.B
다른 관련 클래스 내에서 프라이빗 멤버에 액세스할 수 있지만 Java 컴파일러는 관련 클래스에서 래퍼 메서드를 생성해야 할 수 있습니다. 이러한 경우 개체를 Lookup
해당 C.E
개인 멤버에 연결할 수 없습니다. 이 제한 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, such li create method handles as<Class.forName
instructions <Lookup#findSpecial emulate invokespecial
li>>avoid package access checks for classs for the lookup class li create to access for the classs for the lookup class <li>create Lookup#in delegated lookup objects
to the private access to the same package member </ul><p style="font-size: 작음;"> 이러한 각 권한은 프라이빗 액세스 권한이 있는 조회 개체를 바이트 코드 동작 및 Java 언어 액세스 권한을 메서드 핸들에 의해 안정적으로 결정 및 에뮬레이트할 수 있는 원래 클래스로 안전하게 추적할 수 있다는 사실의 결과입니다.
<h1>"secmgr">Security Manager 상호 작용</h1> 바이트 코드 지침은 관련 클래스 로더의 클래스만 참조할 수 있지만 이 API는 해당 개체에 대한 참조를 사용할 수 있는 한 모든 클래스에서 메서드를 검색할 Class
수 있습니다. 이러한 교차 로더 참조는 핵심 리플렉션 API에서도 가능하며, 명령(예: invokestatic
바이트 코드)은 불가능합니다 getfield
. 애플리케이션이 이러한 교차 로더 참조를 확인할 수 있도록 하는 java.lang.SecurityManager 보안 관리자 API가 있습니다. 이러한 검사는 API 및 핵심 리플렉션 API(있는 경우)에 java.lang.Class Class
모두 MethodHandles.Lookup
적용됩니다.
보안 관리자가 있는 경우 멤버 조회에는 추가 검사가 적용됩니다. 보안 관리자에게 1~3번 호출됩니다. 이러한 호출은 을 throw하여 java.lang.SecurityException SecurityException
액세스를 거부할 수 있습니다. 보안 관리자로 정의하고, lookc
현재 조회 개체의 조회 클래스로, refc
멤버를 찾고 있는 포함하는 클래스로, 멤버 defc
가 실제로 정의된 클래스로 정의 smgr
합니다. 현재 조회 개체에 프라이빗 액세스 권한이 없는 경우 값 lookc
은 em이 없는<> 것으로 정의<>됩니다. 호출은 다음 규칙에 따라 수행됩니다. ul>li b 1단계:</b lookc
> 가 없거나 클래스 로더가 클래스 로더와 동일하지 않거나 클래스 로더의 SecurityManager#checkPackageAccess smgr.checkPackageAccess(refcPkg)
refc
상위 항목이 아닌 경우 호출됩니다. 여기서 패키지refc
는 다음과 refcPkg
같습니다.>><<< <li><b>2단계:</b> 검색된 멤버가 public이 아니고 lookc
존재하지 SecurityManager#checkPermission smgr.checkPermission
않는 경우 with RuntimePermission("accessDeclaredMembers")
가 호출됩니다. <li><b>3단계:</b> 검색된 멤버가 public이 아니고, 존재하지 않는 경우와 다른 SecurityManager#checkPackageAccess smgr.checkPackageAccess(defcPkg)
경우 lookc
refc
defc
, 호출되고, 여기서 패키지defc
는 다음과 defcPkg
같습니다. </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.lang.invoke.MethodHandles.Lookup
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
필드
Package |
사용되지 않음.
액세스(기본 액세스)를 |
Private |
사용되지 않음.
액세스를 나타내는 |
Protected |
사용되지 않음.
액세스를 나타내는 |
Public |
사용되지 않음.
액세스를 나타내는 |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 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) |
형식 클래스에 선언된 형식 |
FindVarHandle(Class, String, Class) |
형식 클래스에 선언된 형식 |
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) |
형식 클래스에 선언된 형식 |
UnregisterFromRuntime() |
<em>조회 개체</em>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 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>은 만들기에 액세스 확인이 필요한 경우 메서드 핸들을 만들기 위한 팩터리입니다. |