次の方法で共有


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>参照オブジェクト</em> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 メソッド ハンドルは、呼び出されたときにアクセス チェックを実行するのではなく、作成時に実行します。 そのため、メソッド ハンドルの作成時に、メソッド ハンドルのアクセス制限を適用する必要があります。 これらの制限が適用される呼び出し元クラスは、#lookupClass 参照クラスと呼ばれます。

メソッド ハンドルを作成する必要がある参照クラスは、それ自体のファクトリを作成するために呼び出 #lookup MethodHandles.lookup されます。 ファクトリ オブジェクトが Lookup 作成されると、参照クラスの ID が決定され、オブジェクトに安全に格納されます Lookup 。 その後、参照クラス (またはそのデリゲート) は、オブジェクトのファクトリ メソッドを Lookup 使用して、アクセスチェックされたメンバーのメソッド ハンドルを作成できます。 これには、参照クラスに許可されているすべてのメソッド、コンストラクター、フィールドが含まれます。プライベートクラスも含まれます。

<h1>"lookups">Lookup Factory Methods</h1> オブジェクトの Lookup ファクトリ メソッドは、メソッド、コンストラクター、およびフィールドのすべての主要なユース ケースに対応します。 ファクトリ メソッドによって作成される各メソッド ハンドルは、特定 <の em>バイトコード動作</em> と同等の機能です。 (バイトコードの動作については、Java 仮想マシン仕様のセクション 5.4.3.5 で説明されています)。これらのファクトリ メソッドと結果のメソッドが処理<する動作の概要を次に示します。table border=1 cellpadding=5 summary="lookup method behaviors"><tr<>th>"equiv">lookup expression</th><th>member</th<>>bytecode behavior</th<>/tr<>tr><td><java.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)/td><td><FT f;/td><td/td<>(T) this.f;<>/tr><tr><td>java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)</td><td><staticbr>FT f;</td td>(T) C.f;<></td></tr><tr><td>java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)</td><td/td td>FT f;><><this.f = x;</td/tr><td>><java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)<<>/td<>td tdstatic<>br><FT f;/td tdC.f = arg;<><>/><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*);/tr td<>/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><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<>><><td><java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)/td td>><C(A*);</td><td><new C(arg*);/td></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/td>><(C) aConstructor.newInstance(arg*);</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 は、他のすべてのメソッド ハンドル引数を表します。 Core Reflection API のコード例では、アクセスされたメソッドまたはフィールドが静的な場合は null 参照を表しthis、それ以外の場合は null 参照を表しますthisOrNull。 指定されたメンバーに対応する反射オブジェクトの名前 aMethodaFieldおよび aConstructor スタンド。

指定されたメンバーが変数アリティ (メソッドまたはコンストラクター) の場合、返されるメソッド ハンドルも MethodHandle#asVarargsCollector 変数アリティになります。 それ以外の場合は、返されるメソッド ハンドルは固定アリティになります。 <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">アクセス チェック</h1> アクセス チェックは、メソッド ハンドルの作成時に Lookupファクトリ メソッドで適用されます。 これは、すべての呼び出し元に対してすべての呼び出し元に対して、すべての呼び出し元に対してアクセス チェックを実行するため java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke 、Core Reflection API との主な違いです。

すべてのアクセス チェックはオブジェクトから Lookup 開始され、記録された参照クラスと、メソッド ハンドルを作成するすべての要求が比較されます。 1 つの Lookup オブジェクトを使用して、任意の数のアクセス チェック メソッド ハンドルを作成し、すべて 1 つの参照クラスに対してチェックできます。

オブジェクトは Lookup 、他の信頼できるコード (メタオブジェクト プロトコルなど) と共有できます。 共有 Lookup オブジェクトは、ルックアップ クラスのプライベート メンバーに対してメソッド ハンドルを作成する機能を委任します。 特権コードがオブジェクトを使用する Lookup 場合でも、アクセス チェックは元の参照クラスの特権に限定されます。

参照が失敗する可能性がある理由は、含むクラスが参照クラスにアクセスできない、または目的のクラス メンバーが存在しない、または必要なクラス メンバーが参照クラスにアクセスできない、または参照オブジェクトがメンバーにアクセスするのに十分な信頼されていないためです。 いずれの場合も、試行された検索から a ReflectiveOperationException がスローされます。 正確なクラスは、次のいずれかになります。 <ul><li>NoSuchMethodException — メソッドが要求されているが、存在 <しない場合は li>NoSuchFieldException — フィールドが要求されているが、存在 <しない場合 li>IllegalAccessException — メンバーが存在するが、アクセス チェックが失敗した <場合 /ul>

一般に、メソッド ハンドルがメソッドを検索 M できる条件は、参照クラスが呼び出し Mをコンパイル、検証、および解決できる条件よりも制限が厳しくはありません。 JVMが例外 NoSuchMethodErrorを発生させる場合、メソッドハンドルルックアップは通常、対応するチェックされた例外を NoSuchMethodException発生させます。 また、参照に起因するメソッド ハンドルを呼び出すことの効果は、コンパイル済み、検証済み、および解決済みの呼び出 Mしを実行することとまったく同じです。 同じ点は、フィールドとコンストラクターにも当てはまります。 <p style="font-size:smaller;"><em>Discussion:</em> Access チェックは、名前付きおよび反映されたメソッド、コンストラクター、およびフィールドにのみ適用されます。 その他のメソッド ハンドルの作成方法 (たとえば MethodHandle#asType MethodHandle.asType、アクセス チェックは不要)、オブジェクト Lookup とは別に使用されます。

必要なメンバーの場合は、通常の JVM 規則が protected適用されます。これには、参照クラスが目的のメンバーと同じパッケージ内にあるか、そのメンバーを継承する必要があるという要件が含まれます。 (Java 仮想マシンの仕様、セクション 4.9.2、5.4.3.5、および 6.4 を参照してください)。さらに、目的のメンバーが別のパッケージ内の非静的フィールドまたはメソッドである場合、結果のメソッド ハンドルは、参照クラスまたはそのサブクラスの 1 つのオブジェクトにのみ適用できます。 この要件は、先頭 this のパラメーター C の型 (必ずしも参照クラスのスーパークラス) を参照クラス自体に絞り込むことで適用されます。

JVM は命令にinvokespecial同様の要件を課します。受信側引数は、解決されたメソッド <em>と現在のクラスの>両方と<一致する必要があります。 ここでも、この要件は、先頭のパラメーターの型を結果のメソッド ハンドルに絞り込むことで適用されます。 (Java 仮想マシンの仕様、セクション 4.10.1.9 を参照してください)。

JVM は、コンストラクターと静的初期化子ブロックを、特別な名前 ("<init>" および "<clinit>") を持つ内部メソッドとして表します。 呼び出し命令の内部構文を使用すると、通常のメソッドであるかのようにこのような内部メソッドを参照できますが、JVM バイトコード検証ツールはそれらを拒否します。 このような内部メソッドを検索すると、 NoSuchMethodException.

場合によっては、入れ子になったクラス間のアクセスは、同じ最上位宣言内の別のクラスのプライベート メソッドにアクセスするラッパー メソッドを作成することによって Java コンパイラによって取得されます。 たとえば、入れ子になったクラスC.Dは 、C.D.EC.BなどのC他の関連クラス内のプライベート メンバーにアクセスできますが、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 プライベート アクセス</em> があると言います。 他の場所の関連するメソッドに記載されているように、プライベート アクセスを持つルックアップにのみ、<ul style="font-size:smaller;">< という機能があります。li>access private fields, methods, and constructors of the lookup class <li>create method handles which invoke caller sensitive methods, such such to<Class.forName li create method handles which Lookup#findSpecial emulate invokespecial instructions <li>>avoid package access checks for classes accessible to the lookup class <li>create Lookup#in delegated lookup objects which have private access to other classes within the same package member </ul><p style="font-size:smaller;">これらの各アクセス許可は、プライベート アクセスを持つ参照オブジェクトを、バイトコードの動作と Java 言語のアクセス許可を確実に決定し、メソッド ハンドルによってエミュレートできる元のクラスに安全にトレースできるという事実の結果です。

<h1>"secmgr">Security manager interactions</h1> bytecode 命令は関連するクラス ローダー内のクラスのみを参照できますが、この API はオブジェクトへの参照が使用可能な限り、任意のクラスのメソッドを Class 検索できます。 このようなクロスローダー参照は Core Reflection API でも可能であり、または getfield.invokestatic アプリケーションがこのようなクロスローダー参照を確認できるようにする java.lang.SecurityManager セキュリティ マネージャー API があります。 これらのチェックは、 MethodHandles.Lookup API と Core Reflection API の両方に適用されます (上で java.lang.Class Class確認できます)。

セキュリティ マネージャーが存在する場合、メンバー参照には追加のチェックが適用されます。 セキュリティ マネージャーに対して 1 ~ 3 回の呼び出しが行われます。 これらの呼び出しのいずれかをスローすることで、アクセスを java.lang.SecurityException SecurityException拒否することができます。 smgrセキュリティ マネージャーとして、lookc現在の参照オブジェクトの参照クラスとして、refcメンバーが検索されている包含クラスとして、およびdefcメンバーが実際に定義されているクラスとして定義します。 現在のルックアップ オブジェクトにプライベート アクセスがない場合、値lookcは em>not present</em> として<定義されます。 呼び出しは、次の規則に従って行われます: ul>li b ステップ 1:</b> 存在しない場合lookc、またはそのクラス ローダーがクラス ローダーと同じでない場合、またはクラス ローダーのrefcSecurityManager#checkPackageAccess smgr.checkPackageAccess(refcPkg)先祖が呼び出されます。これはrefcPkgパッケージrefcです。>><<< <li><b>手順 2:</b> 取得したメンバーがパブリック lookc ではなく、存在しない場合は、 SecurityManager#checkPermission smgr.checkPermission with RuntimePermission("accessDeclaredMembers") が呼び出されます。 <li><b>手順 3:</b> 取得したメンバーがパブリックでない場合、および存在しない場合lookc、およびrefc異なる場合defcは、呼defcPkgdefcび出されますSecurityManager#checkPackageAccess smgr.checkPackageAccess(defcPkg)。 </ul> セキュリティ チェックは、他のアクセス チェックに合格した後に実行されます。 したがって、上記の規則は、パブリックメンバー、またはメンバーにアクセスする権限を持つルックアップ クラスからアクセスされているメンバーを事前に指定します。

<h1>"callsens">呼び出し元の機密性の高いメソッド</h1> 少数の Java メソッドには、呼び出し元の秘密度と呼ばれる特殊なプロパティがあります。 <em>の呼び出し元に依存<する/em> メソッドは、その直接の呼び出し元の ID に応じて動作が異なる場合があります。

呼び出し元に依存するメソッドのメソッド ハンドルが要求された場合、バイトコード動作の一般的な規則が適用されますが、特殊な方法で参照クラスが考慮されます。 結果のメソッド ハンドルは、ルックアップ クラスに含まれる命令から呼び出されたかのように動作し、呼び出し元に依存するメソッドが参照クラスを検出できるようにします。 (これに対し、メソッド ハンドルの呼び出し側は無視されます)。したがって、呼び出し元に依存するメソッドの場合、異なるルックアップ クラスによって、動作が異なるメソッド ハンドルが生じる可能性があります。

参照オブジェクト #publicLookup publicLookup()がプライベート アクセスのない、または他の参照オブジェクトである場合、参照クラスは無視されます。 このような場合、呼び出し元に依存するメソッド ハンドルを作成できず、アクセスは禁止され、検索は .IllegalAccessException <p style="font-size:smaller;"><em>Discussion:</em> たとえば、呼び出し元に依存するメソッド java.lang.Class#forName(String) Class.forName(x) は、それを呼び出すクラスのクラス ローダーに応じて、さまざまなクラスを返したり、さまざまな例外をスローしたりできます。 バイトコードの動作を 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

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

フィールド

Package
古い.

アクセス (既定のアクセス) を package 表す単一ビット マスク。これは、次の #lookupModes lookupModes結果に寄与する可能性があります。

Private
古い.

アクセスを private 表す単一ビット マスク。これは、次の #lookupModes lookupModes結果に寄与する可能性があります。

Protected
古い.

アクセスを protected 表す単一ビット マスク。これは、次の #lookupModes lookupModes結果に寄与する可能性があります。

Public
古い.

アクセスを public 表す単一ビット マスク。これは、次の #lookupModes lookupModes結果に寄与する可能性があります。

プロパティ

Class

この Objectランタイム クラスを返します。

(継承元 Object)
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)

型のクラスで宣言された型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()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 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> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 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> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。

適用対象