ISafeVarargs Interface
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.
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>
@SafeVarargs // Not actually safe!
static void m(List<String>... stringLists) {
Object[] array = stringLists;
List<Integer> 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |