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 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><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(T) this.f;
<>/trd></tr><tr><td>java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)
</td><td><static
br>FT f;
</td><td td<>(T) C.f;
/td></tr tr<><>td<>java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)
/td><td<>FT f;
/td><td<this.f = x;
>/td></tr<>td<>td<>java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)
/td<>td><<FT f;
><>static
td<>C.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*);
</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><><(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 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><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
。 、、aField
および という名前aMethod
は、aConstructor
指定されたメンバーに対応する反射オブジェクトを表します。
指定されたメンバーが変数のアリティ (メソッドまたはコンストラクター) の場合、返されるメソッド ハンドルも 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 checking</h1> アクセス チェックは、 のファクトリ メソッド Lookup
に適用され、メソッド ハンドルが作成されます。 これは、すべての呼び出し元に対してすべての呼び出し元に対してアクセス チェックを実行するため java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke
、Core Reflection API との重要な違いです。
すべてのアクセス チェックは Lookup
、記録された参照クラスをメソッド ハンドルを作成するすべての要求と比較する オブジェクトから開始されます。 1 つの Lookup
オブジェクトを使用して、任意の数のアクセス チェック メソッド ハンドルを作成し、すべて 1 つの参照クラスに対してチェックできます。
オブジェクトは Lookup
、メタオブジェクト プロトコルなど、他の信頼できるコードと共有できます。 共有 Lookup
オブジェクトは、ルックアップ クラスのプライベート メンバーに対してメソッド ハンドルを作成する機能を委任します。 特権コードで オブジェクトが Lookup
使用されている場合でも、アクセス チェックは元の参照クラスの特権に限定されます。
参照が失敗する可能性があります。参照クラスにアクセスできない、または目的のクラス メンバーが見つからない、または目的のクラス メンバーが参照クラスからアクセスできない、または参照オブジェクトがメンバーにアクセスするのに十分な信頼されていないためです。 いずれの場合も、試行された検索から が 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.E
、、 C.B
などのC
他の関連クラス内のプライベート メンバーにアクセスできますが、Java コンパイラでは、これらの関連クラスでラッパー メソッドを生成する必要がある場合があります。 このような場合、 の Lookup
C.E
オブジェクトは、それらのプライベート メンバーに対して実行できません。 この制限の回避策は、 メソッドであり Lookup#in Lookup.in
、特別な特権の昇格なしで、 の C.E
参照を他のクラスの 1 つに変換できます。
特定の参照オブジェクトに対して許可されるアクセスは、 の #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 t<Class.forName
li create method handles which Lookup#findSpecial emulate invokespecial
instructions <li>>avoid package access checks for class 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:小さい;">これらの各アクセス許可は、プライベート アクセス権を持つ参照オブジェクトを元のクラスに安全にトレースし直すことができるという事実の結果です。そのバイトコード動作と Java 言語アクセス許可は、メソッド ハンドルによって確実に決定およびエミュレートされます。
<h1>"secmgr">Security manager interactions</h1> バイトコード命令は関連するクラス ローダー内のクラスのみを参照できますが、この 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 Step 1:</b> が存在しない場合lookc
、またはそのクラス ローダーが と同じでない場合、または のクラス ローダーrefc
SecurityManager#checkPackageAccess smgr.checkPackageAccess(refcPkg)
の先祖が 呼び出されます。ここでrefcPkg
、 は のrefc
パッケージです。>><<< <li><b>手順 2:</b> 取得したメンバーがパブリックlookc
ではなく、存在しない場合は、 がSecurityManager#checkPermission smgr.checkPermission
RuntimePermission("accessDeclaredMembers")
呼び出されます。 <li><b>手順 3:</b> 取得したメンバーがパブリックでない場合、および が存在しない場合、および が異なる場合refc
defc
lookc
は が呼び出されますSecurityManager#checkPackageAccess smgr.checkPackageAccess(defcPkg)
。ここでdefcPkg
、 は のdefc
パッケージです。 </ul> セキュリティ チェックは、他のアクセス チェックに合格した後に実行されます。 したがって、上記の規則は、パブリックのメンバー、またはメンバーにアクセスする権限を持つルックアップ クラスからアクセスされているメンバーを事前に指定します。
<h1>"callsens">Caller sensitive methods</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
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
フィールド
Package |
古い.
アクセス (既定のアクセス) を |
Private |
古い.
アクセスを |
Protected |
古い.
アクセスを |
Public |
古い.
アクセスを |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
<em>参照オブジェクト</em> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 (継承元 Object) |
JniPeerMembers |
<em>参照オブジェクト</em> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 |
PeerReference |
<em>参照オブジェクト</em> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 (継承元 Object) |
ThresholdClass |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
ThresholdType |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 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() |
このオブジェクトのモニターで待機している 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) |
型のクラスで宣言された型 |
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> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 |