MethodHandles.Lookup Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès.
[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
- Héritage
- Attributs
Remarques
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. Les handles de méthode n’effectuent pas de vérifications d’accès lorsqu’ils sont appelés, mais plutôt lorsqu’ils sont créés. Par conséquent, les restrictions d’accès de handle de méthode doivent être appliquées lorsqu’un handle de méthode est créé. La classe d’appelant sur laquelle ces restrictions sont appliquées est appelée classe de recherche #lookupClass.
Une classe de recherche qui doit créer des handles de méthode appellera #lookup MethodHandles.lookup
pour créer une fabrique pour elle-même. Lorsque l’objet Lookup
de fabrique est créé, l’identité de la classe de recherche est déterminée et stockée en toute sécurité dans l’objet Lookup
. La classe de recherche (ou ses délégués) peut ensuite utiliser des méthodes de fabrique sur l’objet Lookup
pour créer des handles de méthode pour les membres vérifiés par accès. Cela inclut toutes les méthodes, constructeurs et champs autorisés à la classe de recherche, même privés.
<h1>"lookups">Lookup Factory Methods</h1> Les méthodes de fabrique d’un Lookup
objet correspondent à tous les cas d’usage majeurs pour les méthodes, les constructeurs et les champs. Chaque handle de méthode créé par une méthode de fabrique est l’équivalent fonctionnel d’un comportement</em bytecode em>> particulier<. (Les comportements bytecode sont décrits dans la section 5.4.3.5 de la spécification de machine virtuelle Java.) Voici un résumé de la correspondance entre ces méthodes de fabrique et le comportement des handles de méthode résultants : <table border=1 cellpadding=5 summary="lookup method behaviors"><tr><th>"equiv"equiv">lookup expression</th<><> th<>>bytecode behavior</th></tr><tr><tdjava.lang.invoke.MethodHandles.Lookup#findGetter lookup.findGetter(C.class,"f",FT.class)
></td><>><><<(T) this.f;
FT f;
/td/tr/tr/tr><><tr><td>java.lang.invoke.MethodHandles.Lookup#findStaticGetter lookup.findStaticGetter(C.class,"f",FT.class)
</<static
>><td td br>FT f;
</td td>(T) C.f;
</td></td></tr tr<>>java.lang.invoke.MethodHandles.Lookup#findSetter lookup.findSetter(C.class,"f",FT.class)
<>< td/this.f = x;
><><td<><>FT f;
/td/td></tr tr><<>td><java.lang.invoke.MethodHandles.Lookup#findStaticSetter lookup.findStaticSetter(C.class,"f",FT.class)
/td td><static
/><td td br<>FT f;
/td tdC.f = arg;
></td></td></tr><><><java.lang.invoke.MethodHandles.Lookup#findVirtual lookup.findVirtual(C.class,"m",MT)
td/><><T m(A*);
td td/td><><(T) this.m(arg*);
/<>tr tr>><<td><java.lang.invoke.MethodHandles.Lookup#findStatic lookup.findStatic(C.class,"m",MT)
/td>>static
<><T m(A*);
< br/td><(T) C.m(arg*);
>< td/td<>/tr tr<<>>td>java.lang.invoke.MethodHandles.Lookup#findSpecial lookup.findSpecial(C.class,"m",MT,this.class)
</>><<T m(A*);
td/td/td/td(T) super.m(arg*);
<>/td></td></tr/tr><>><<java.lang.invoke.MethodHandles.Lookup#findConstructor lookup.findConstructor(C.class,MT)
td/><C(A*);
<>td/td/td>>><<<new C(arg*);
/tr tr>><</java.lang.invoke.MethodHandles.Lookup#unreflectGetter lookup.unreflectGetter(aField)
><td<>>(static
) ?<br>FT f;
</td><><(FT) aField.get(thisOrNull);
/td/td<>/tr tr><><td<>java.lang.invoke.MethodHandles.Lookup#unreflectSetter lookup.unreflectSetter(aField)
/td><>(static
) ?<br>FT f;
</td><><aField.set(thisOrNull, arg);
/td/td<>/tr tr><><td<>java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)
/td><>(static
) ?<br>T m(A*);
</td><<>(T) aMethod.invoke(thisOrNull, arg*);
/td/td></tr tr<<>>td<java.lang.invoke.MethodHandles.Lookup#unreflectConstructor lookup.unreflectConstructor(aConstructor)
>/td>><<C(A*);
/td/td>><<><(C) aConstructor.newInstance(arg*);
/td/tr tr>><<<>java.lang.invoke.MethodHandles.Lookup#unreflect lookup.unreflect(aMethod)
/td>><(static
) ?<br><T m(A*);
/td></>(T) aMethod.invoke(thisOrNull, arg*);
<td/td<>/tr></table>
Ici, le type C
est la classe ou l’interface recherchée pour un membre, documentée comme paramètre nommé refc
dans les méthodes de recherche. Le type MT
de méthode est composé du type T
de retour et de la séquence de types d’arguments A*
. Le constructeur a également une séquence de types A*
d’arguments et est considéré comme renvoyant l’objet nouvellement créé de type C
. Le MT
type de champ et le type FT
de champ sont documentés sous la forme d’un paramètre nommé type
. Le paramètre this
formel correspond à l’auto-référence de type C
; s’il est présent, il s’agit toujours de l’argument de début de l’appel de handle de méthode. (Dans le cas de certains protected
membres, this
peut être limité en type à la classe de recherche ; voir ci-dessous.) Le nom arg
correspond à tous les autres arguments de handle de méthode. Dans les exemples de code de l’API Core Reflection, le nom thisOrNull
correspond à une référence null si la méthode ou le champ accédé est statique, et this
sinon. aMethod
Noms , aField
et aConstructor
stand pour les objets réfléchissants correspondant aux membres donnés.
Dans les cas où le membre donné est d’arité variable (par exemple, une méthode ou un constructeur), le handle de méthode retourné sera également de MethodHandle#asVarargsCollector variable arity. Dans tous les autres cas, le handle de méthode retourné sera d’arité fixe. <p style="font-size :smaller ; »><em>Discussion :</em> L’équivalence entre les handles de méthode recherchés et les membres de classe sous-jacents et les comportements bytecode peuvent se décomposer de plusieurs façons : <ul style="font-size :smaller ; »><li>If C
n’est pas symboliquement accessible à partir du chargeur de la classe de recherche, la recherche peut toujours réussir, même s’il n’existe aucune expression Java équivalente ou constante bytecoded. <li>De même, si T
elle MT
n’est pas symboliquement accessible à partir du chargeur de la classe de recherche, la recherche peut toujours réussir. Par exemple, les recherches pour MethodHandle.invokeExact
et MethodHandle.invoke
réussissent toujours, quel que soit le type demandé. <li>S’il existe un gestionnaire de sécurité installé, il peut interdire la recherche sur différents motifs (voir ci-dessous). En revanche, l’instruction ldc
sur une CONSTANT_MethodHandle
constante n’est pas soumise aux vérifications du gestionnaire de sécurité. <li>Si la méthode recherchée a une très grande arité, la création du handle de méthode peut échouer, en raison du type de handle de méthode ayant trop de paramètres. </ul>
<h1>"access">Access checking</h1> Access checks are applied in the factory methods of Lookup
, when a method handle is created. Il s’agit d’une différence clé par rapport à l’API Core Reflection, car java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke
effectue la vérification d’accès sur chaque appelant, sur chaque appel.
Toutes les vérifications d’accès commencent à partir d’un Lookup
objet, qui compare sa classe de recherche enregistrée à toutes les requêtes pour créer des handles de méthode. Un seul Lookup
objet peut être utilisé pour créer n’importe quel nombre de handles de méthode vérifiés par accès, tous vérifiés par rapport à une seule classe de recherche.
Un Lookup
objet peut être partagé avec d’autres codes approuvés, tels qu’un protocole metaobject. Un objet partagé Lookup
délègue la possibilité de créer des handles de méthode sur des membres privés de la classe de recherche. Même si le code privilégié utilise l’objet Lookup
, la vérification d’accès est limitée aux privilèges de la classe de recherche d’origine.
Une recherche peut échouer, car la classe conteneur n’est pas accessible à la classe de recherche, ou parce que le membre de classe souhaité est manquant, ou parce que le membre de classe souhaité n’est pas accessible à la classe de recherche, ou parce que l’objet de recherche n’est pas suffisamment approuvé pour accéder au membre. Dans l’un de ces cas, une ReflectiveOperationException
exception est levée à partir de la recherche tentée. La classe exacte sera l’une des suivantes : <ul><li>noSuchMethodException &mdash ; si une méthode est demandée mais n’existe <pas li>NoSuchFieldException &mdash ; si un champ est demandé, mais n’existe <pas li>IllegalAccessException &mdash ; si le membre existe mais qu’une vérification d’accès échoue </ul>
En général, les conditions dans lesquelles un handle de méthode peut être recherché pour une méthode M
ne sont pas plus restrictives que les conditions dans lesquelles la classe de recherche pourrait avoir compilé, vérifié et résolu un appel à M
. Lorsque la machine virtuelle JVM déclenche des exceptions comme NoSuchMethodError
, une recherche de handle de méthode déclenche généralement une exception vérifiée correspondante, telle que NoSuchMethodException
. Et l’effet de l’appel du handle de méthode résultant de la recherche est exactement équivalent à l’exécution de l’appel compilé, vérifié et résolu à M
. Le même point est vrai pour les champs et les constructeurs. <p style="font-size :smaller ; »><em>Discussion :</em> Access vérifie uniquement s’applique aux méthodes nommées et reflétées, aux constructeurs et aux champs. D’autres méthodes de gestion de méthode, telles que MethodHandle#asType MethodHandle.asType
, ne nécessitent aucune vérification d’accès et sont utilisées indépendamment de n’importe quel Lookup
objet.
Si le membre souhaité est protected
, les règles JVM habituelles s’appliquent, y compris la condition que la classe de recherche doit être dans le même package que le membre souhaité, ou doit hériter de ce membre. (Consultez la spécification des machines virtuelles Java, sections 4.9.2, 5.4.3.5 et 6.4.) En outre, si le membre souhaité est un champ ou une méthode non statique dans un autre package, le handle de méthode résultant peut uniquement être appliqué aux objets de la classe de recherche ou à l’une de ses sous-classes. Cette exigence est appliquée en limitant le type du paramètre de début this
( C
qui sera nécessairement une superclasse de la classe de recherche) à la classe de recherche elle-même.
La machine virtuelle JVM impose une exigence similaire à l’instruction invokespecial
, que l’argument récepteur doit correspondre à la fois à la méthode <résolue em>et</em> à la classe actuelle. Là encore, cette exigence est appliquée en limitant le type du paramètre de début au handle de méthode résultant. (Consultez la spécification de machine virtuelle Java, section 4.10.1.9.)
La machine virtuelle JVM représente des constructeurs et des blocs d’initialiseurs statiques en tant que méthodes internes avec des noms spéciaux ("<init>"
et "<clinit>"
). La syntaxe interne des instructions d’appel leur permet de faire référence à ces méthodes internes comme si elles étaient des méthodes normales, mais le vérificateur de code bytecode JVM les rejette. Une recherche de cette méthode interne produit un NoSuchMethodException
.
Dans certains cas, l’accès entre les classes imbriquées est obtenu par le compilateur Java en créant une méthode wrapper pour accéder à une méthode privée d’une autre classe dans la même déclaration de niveau supérieur. Par exemple, une classe C.D
imbriquée peut accéder aux membres privés dans d’autres classes associées telles que C
, C.D.E
ou C.B
, mais le compilateur Java peut avoir besoin de générer des méthodes wrapper dans ces classes associées. Dans ce cas, un Lookup
objet sur C.E
serait incapable de ces membres privés. Une solution de contournement pour cette limitation est la Lookup#in Lookup.in
méthode, qui peut transformer une recherche sur C.E
l’une de ces autres classes, sans élévation de privilège spéciale.
Les accès autorisés à un objet de recherche donné peuvent être limités, selon son ensemble , #lookupModes lookupModes
à un sous-ensemble de membres normalement accessible à la classe de recherche. Par exemple, la #publicLookup publicLookup
méthode produit un objet de recherche qui est uniquement autorisé à accéder aux membres publics dans les classes publiques. La méthode #lookup lookup
sensible de l’appelant produit un objet de recherche avec des fonctionnalités complètes par rapport à sa classe d’appelant, pour émuler tous les comportements de code bytecode pris en charge. En outre, la Lookup#in Lookup.in
méthode peut produire un objet de recherche avec moins de modes d’accès que l’objet de recherche d’origine.
<p style="font-size :smaller ; » »> Privecc"><em>Discussion of private access :</em> We say that a>< em private access</em> if its #lookupModes lookup modes include the possibilité d’accéder aux private
membres. Comme indiqué dans les méthodes pertinentes ailleurs, seules les recherches avec accès privé possèdent les fonctionnalités suivantes : <ul style="font-size :smaller ; »><li>access private fields, methods, and constructors of the lookup class <li>create method handles qui appellent des méthodes sensibles de l’appelant, comme<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
qui ont un accès privé à d’autres classes dans le même membre <de package /ul><p style="font-size : plus petit ;"> Chacune de ces autorisations est une conséquence du fait qu’un objet de recherche disposant d’un accès privé peut être suivi de manière sécurisée vers une classe d’origine, dont les comportements bytecode et les autorisations d’accès au langage Java peuvent être déterminés et émulés de manière fiable par les handles de méthode.
<h1>"secmgr">Interactions du gestionnaire de sécurité/h1> Bien que les instructions bytecode ne puissent faire référence qu’aux classes d’un chargeur de classes connexes<, cette API peut rechercher des méthodes dans n’importe quelle classe, tant qu’une référence à son Class
objet est disponible. Ces références cross-loader sont également possibles avec l’API Core Reflection et sont impossibles à bytecoder des instructions telles que invokestatic
ou getfield
. Il existe une API du gestionnaire de sécurité java.lang.SecurityManager pour permettre aux applications de vérifier ces références inter-chargeurs. Ces vérifications s’appliquent à la fois à l’API MethodHandles.Lookup
et à l’API Core Reflection (comme indiqué sur java.lang.Class Class
).
Si un gestionnaire de sécurité est présent, les recherches de membres sont soumises à des vérifications supplémentaires. De un à trois appels sont effectués au gestionnaire de sécurité. L’un de ces appels peut refuser l’accès en lève un java.lang.SecurityException SecurityException
. Définissez smgr
comme gestionnaire de sécurité, lookc
comme classe de recherche de l’objet de recherche actuel, refc
comme classe contenante dans laquelle le membre est recherché, et defc
comme classe dans laquelle le membre est réellement défini. La valeur lookc
est définie comme <em>non présente</em> si l’objet de recherche actuel n’a pas d’accès privé. Les appels sont effectués en fonction des règles suivantes : <ul><li><b>Step 1 :</b> If lookc
is not present, or if its class loader is not the same as or an ancestor of the class loader of refc
, then SecurityManager#checkPackageAccess smgr.checkPackageAccess(refcPkg)
is called, where refcPkg
is the package of refc
. <Li><b>Étape 2 :</b> Si le membre récupéré n’est pas public et lookc
n’est pas présent, avec SecurityManager#checkPermission smgr.checkPermission
RuntimePermission("accessDeclaredMembers")
est appelé. <li><b>Étape 3 :</b> Si le membre récupéré n’est pas public, et s’il lookc
n’est pas présent, et si defc
et refc
sont différents, est SecurityManager#checkPackageAccess smgr.checkPackageAccess(defcPkg)
appelé, où defcPkg
est le package de defc
. <Les vérifications de sécurité /ul> sont effectuées une fois les autres vérifications d’accès passées. Par conséquent, les règles ci-dessus présupposent un membre qui est public ou qui est accessible à partir d’une classe de recherche qui a les droits d’accès au membre.
<h1>"callsens">Caller sensitive methods</h1> A small number of Java methods have a special property called caller sensitivity. >Une <méthode em caller-sensitive</em> peut se comporter différemment en fonction de l’identité de son appelant immédiat.
Si un handle de méthode pour une méthode sensible à l’appelant est demandé, les règles générales pour les comportements bytecode s’appliquent, mais elles prennent en compte la classe de recherche d’une manière spéciale. Le handle de méthode résultant se comporte comme s’il était appelé à partir d’une instruction contenue dans la classe de recherche, afin que la méthode sensible à l’appelant détecte la classe de recherche. (En revanche, l’appelant du handle de méthode est ignoré.) Ainsi, dans le cas de méthodes sensibles à l’appelant, différentes classes de recherche peuvent donner lieu à des handles de méthode différemment de comportement.
Dans les cas où l’objet de recherche est #publicLookup publicLookup()
, ou un autre objet de recherche sans accès privé, la classe de recherche est ignorée. Dans ce cas, aucun handle de méthode sensible à l’appelant ne peut être créé, l’accès est interdit et la recherche échoue avec un IllegalAccessException
. <p style="font-size :smaller ; »><em>Discussion :</em> Par exemple, la méthode java.lang.Class#forName(String) Class.forName(x)
sensible à l’appelant peut retourner des classes variables ou lever des exceptions variables, en fonction du chargeur de classes de la classe qui l’appelle. Une recherche publique échoue Class.forName
, car il n’existe aucun moyen raisonnable de déterminer son comportement de code bytecode. <p style="font-size :smaller ; »> Si une application met en cache la méthode gère le partage à grande échelle, elle doit l’utiliser publicLookup()
pour les créer. S’il existe une recherche, Class.forName
elle échoue et l’application doit prendre les mesures appropriées dans ce cas. Il peut s’agir d’une recherche ultérieure, peut-être pendant l’appel d’une méthode bootstrap, peut incorporer l’identité spécifique de l’appelant, ce qui rend la méthode accessible. <p style="font-size :smaller ; »> La fonction MethodHandles.lookup
est sensible à l’appelant afin qu’il puisse y avoir une base sécurisée pour les recherches. Presque toutes les autres méthodes de l’API JSR 292 s’appuient sur des objets de recherche pour vérifier les demandes d’accès.
Documentation Java pour java.lang.invoke.MethodHandles.Lookup
.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.
Champs
Package |
Obsolète.
Masque à bits unique représentant |
Private |
Obsolète.
Masque à bits unique représentant |
Protected |
Obsolète.
Masque à bits unique représentant |
Public |
Obsolète.
Masque à bits unique représentant |
Propriétés
Class |
Retourne la classe runtime de ce |
Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
JniIdentityHashCode |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
JniPeerMembers |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. |
PeerReference |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
Méthodes
Bind(Object, String, MethodType) |
Produit un handle de méthode à liaison anticipée pour une méthode non statique. |
Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
Dispose() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
Dispose(Boolean) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
FindConstructor(Class, MethodType) |
Produit un handle de méthode qui crée un objet et l’initialise à l’aide du constructeur du type spécifié. |
FindGetter(Class, String, Class) |
Produit un handle de méthode donnant accès en lecture à un champ non statique. |
FindSetter(Class, String, Class) |
Produit un handle de méthode donnant l’accès en écriture à un champ non statique. |
FindSpecial(Class, String, MethodType, Class) |
Produit un handle de méthode à liaison anticipée pour une méthode virtuelle. |
FindStatic(Class, String, MethodType) |
Produit un handle de méthode pour une méthode statique. |
FindStaticGetter(Class, String, Class) |
Produit un handle de méthode donnant accès en lecture à un champ statique. |
FindStaticSetter(Class, String, Class) |
Produit un handle de méthode donnant un accès en écriture à un champ statique. |
FindStaticVarHandle(Class, String, Class) |
Produit un VarHandle donnant accès à un champ |
FindVarHandle(Class, String, Class) |
Produit un VarHandle donnant accès à un champ |
FindVirtual(Class, String, MethodType) |
Produit un handle de méthode pour une méthode virtuelle. |
GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
In(Class) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. |
JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
LookupClass() |
Indique à quelle classe effectue la recherche. |
LookupModes() |
Indique les classes de protection d’accès des membres que cet objet de recherche peut produire. |
Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
RevealDirect(MethodHandle) |
Fissure un handle de méthode directe créé par cet objet de recherche ou un handle de méthode similaire. |
SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
ToArray<T>() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
Unreflect(Method) |
Rend un handle de méthode directe à m, si la classe de recherche a l’autorisation. |
UnreflectConstructor(Constructor) |
Produit un handle de méthode pour un constructeur réfléchi. |
UnreflectGetter(Field) |
Produit un handle de méthode donnant accès en lecture à un champ réfléchi. |
UnreflectSetter(Field) |
Produit un handle de méthode donnant l’accès en écriture à un champ réfléchi. |
UnreflectSpecial(Method, Class) |
Produit un handle de méthode pour une méthode réfléchie. |
UnreflectVarHandle(Field) |
Produit un VarHandle donnant accès à un champ |
UnregisterFromRuntime() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou> <em>interrompu</em>.<> (Hérité de Object) |
Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Implémentations d’interfaces explicites
IJavaPeerable.Disposed() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.Finalized() |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.JniManagedPeerState |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. (Hérité de Object) |
Méthodes d’extension
JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
JavaCast<TResult>(IJavaObject) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. |
GetJniTypeName(IJavaPeerable) |
Un <objet< de recherche em>> est une fabrique de handles de méthode lors de la création d’un contrôle d’accès. |