ISafeVarargs Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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>
@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>
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| 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 |