Langage

ISafeVarargs Interface

Définition

Assertion du programmeur indiquant que le corps de la méthode ou du constructeur annoté n’effectue pas d’opérations potentiellement dangereuses sur son paramètre varargs.

[Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")]
public interface ISafeVarargs : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")>]
type ISafeVarargs = interface
    interface IAnnotation
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Attributs
Implémente

Remarques

Assertion du programmeur indiquant que le corps de la méthode ou du constructeur annoté n’effectue pas d’opérations potentiellement dangereuses sur son paramètre varargs. L’application de cette annotation à une méthode ou un constructeur supprime les avertissements non vérifiés concernant un type de variable non réifiable (vararg) et supprime les avertissements non vérifiés sur la création de tableaux paramétrables sur les sites d’appel.

Outre les restrictions d’utilisation imposées par sa Target @Target méta-annotation, les compilateurs sont tenus d’implémenter des restrictions d’utilisation supplémentaires sur ce type d’annotation ; il s’agit d’une erreur au moment de la compilation si une déclaration de méthode ou de constructeur est annotée avec une @SafeVarargs annotation, et <ul><li li> la déclaration est une méthode ou un constructeur d’arité fixe

<li> la déclaration est une méthode d’arité variable qui n’est ni ni static ni finalprivate.

</ul>

Les compilateurs sont encouragés à émettre des avertissements lorsque ce type d’annotation est appliqué à une déclaration de méthode ou de constructeur où :

<ul>

<li> Le paramètre d’arité variable a un type d’élément réifiable, qui inclut des types primitifs, Objectet String. (Les avertissements non vérifiés que ce type d’annotation supprime ne se produisent pas déjà pour un type d’élément réifiable.)

<li> Le corps de la déclaration de méthode ou de constructeur effectue des opérations potentiellement dangereuses, telles qu’une affectation à un élément du tableau du paramètre arity de variable qui génère un avertissement non vérifié. Certaines opérations non sécurisées ne déclenchent pas d’avertissement non vérifié. Par exemple, l’alias dans

<blockquote>

&#64;SafeVarargs // Not actually safe!
            static void m(List&lt;String&gt;... stringLists) {
              Object[] array = stringLists;
              List&lt;Integer&gt; tmpList = Arrays.asList(42);
              array[0] = tmpList; // Semantically invalid, but compiles without warnings
              String s = stringLists[0].get(0); // Oh no, ClassCastException at runtime!
            }

</blockquote>

conduit à un ClassCastException au moment de l’exécution.

Les futures versions de la plateforme peuvent imposer des erreurs de compilateur pour ces opérations non sécurisées.

</ul>

Ajouté dans la version 1.7.

Java documentation pour java.lang.SafeVarargs.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniObjectReferenceControlBlock

Assertion du programmeur indiquant que le corps de la méthode ou du constructeur annoté n’effectue pas d’opérations potentiellement dangereuses sur son paramètre varargs.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Nom Description
AnnotationType()

Retourne l’interface d’annotation de cette annotation.

(Hérité de IAnnotation)
Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Equals(Object)

Retourne true si l’objet spécifié représente une annotation qui est logiquement équivalente à celle-ci.

(Hérité de IAnnotation)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
GetHashCode()

Retourne le code de hachage de cette annotation.

(Hérité de IAnnotation)
SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Assertion du programmeur indiquant que le corps de la méthode ou du constructeur annoté n’effectue pas d’opérations potentiellement dangereuses sur son paramètre varargs.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
ToString()

Retourne une représentation sous forme de chaîne de cette annotation.

(Hérité de IAnnotation)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Assertion du programmeur indiquant que le corps de la méthode ou du constructeur annoté n’effectue pas d’opérations potentiellement dangereuses sur son paramètre varargs.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à