Sprache

ISafeVarargs Schnittstelle

Definition

Eine Programmiererbehauptung, dass der Textkörper der kommentierten Methode oder des Konstruktors keine potenziell unsicheren Vorgänge für den Varargs-Parameter ausführt.

[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
Attribute
Implementiert

Hinweise

Eine Programmiererbehauptung, dass der Textkörper der kommentierten Methode oder des Konstruktors keine potenziell unsicheren Vorgänge für den Varargs-Parameter ausführt. Wenn Sie diese Anmerkung auf eine Methode oder einen Konstruktor anwenden, werden nicht überprüfte Warnungen bezüglich eines nicht reifizierbaren Variablenaritätstyps (vararg) unterdrückt und deaktivierte Warnungen zur parametrisierten Arrayerstellung an Aufrufstandorten unterdrückt.

Zusätzlich zu den von der Target @Target Metaanmerkung auferlegten Verwendungseinschränkungen sind Compiler erforderlich, um zusätzliche Verwendungseinschränkungen für diesen Anmerkungstyp zu implementieren. Es handelt sich um einen Kompilierungszeitfehler, wenn eine Methode oder Konstruktordeklaration mit einer @SafeVarargs Anmerkung kommentiert wird, und entweder: <ul><li> die Deklaration ist eine feste Arity-Methode oder ein Konstruktor.

<li> die Deklaration ist eine variable Arity-Methode, die weder static noch final nicht private.

</ul>

Compiler werden empfohlen, Warnungen auszugeben, wenn dieser Anmerkungstyp auf eine Methode oder Konstruktordeklaration angewendet wird, wobei:

<Ul>

<li> Der Parameter "Variable Arity" weist einen reifizierbaren Elementtyp auf, der primitive Typen enthält, Objectund String. (Die deaktivierten Warnungen, die dieser Anmerkungstyp unterdrückt, treten für einen reifizierbaren Elementtyp bereits nicht auf.)

<li> Der Textkörper der Methoden- oder Konstruktordeklaration führt potenziell unsichere Vorgänge aus, z. B. eine Zuordnung zu einem Element des Arrays des Variablenaritätsparameters, der eine nicht aktivierte Warnung generiert. Einige unsichere Vorgänge lösen keine deaktivierte Warnung aus. Beispiel: Aliasing in

<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>

führt zur ClassCastException Laufzeit.

Zukünftige Versionen der Plattform können Compilerfehler für solche unsicheren Vorgänge mandaten.

</ul>

In 1.7 hinzugefügt.

Java Dokumentation für java.lang.SafeVarargs.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Eine Programmiererbehauptung, dass der Textkörper der kommentierten Methode oder des Konstruktors keine potenziell unsicheren Vorgänge für den Varargs-Parameter ausführt.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)

Methoden

Name Beschreibung
AnnotationType()

Gibt die Anmerkungsschnittstelle dieser Anmerkung zurück.

(Geerbt von IAnnotation)
Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Equals(Object)

Gibt true zurück, wenn das angegebene Objekt eine Anmerkung darstellt, die logisch diesem entspricht.

(Geerbt von IAnnotation)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
GetHashCode()

Gibt den Hashcode dieser Anmerkung zurück.

(Geerbt von IAnnotation)
SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Eine Programmiererbehauptung, dass der Textkörper der kommentierten Methode oder des Konstruktors keine potenziell unsicheren Vorgänge für den Varargs-Parameter ausführt.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
ToString()

Gibt eine Zeichenfolgendarstellung dieser Anmerkung zurück.

(Geerbt von IAnnotation)
UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Eine Programmiererbehauptung, dass der Textkörper der kommentierten Methode oder des Konstruktors keine potenziell unsicheren Vorgänge für den Varargs-Parameter ausführt.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: