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<>>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><static
br>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
。 指定されたメンバーに対応する反射オブジェクトの名前 aMethod
、 aField
および 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.E
C.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
、またはそのクラス ローダーがクラス ローダーと同じでない場合、またはクラス ローダーのrefc
SecurityManager#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
は、呼defcPkg
defc
び出されます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 |
古い.
アクセス (既定のアクセス) を |
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() |
このオブジェクトのモニターで待機している 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> は、メソッド ハンドルを作成するためのファクトリであり、作成にアクセス チェックが必要な場合です。 |