ISafeVarargs Interfaccia

Definizione

Asserzione programmatrice che il corpo del metodo o del costruttore con annotazioni non esegue operazioni potenzialmente non sicure sul parametro 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
Attributi
Implementazioni

Commenti

Asserzione programmatrice che il corpo del metodo o del costruttore con annotazioni non esegue operazioni potenzialmente non sicure sul parametro varargs. L'applicazione di questa annotazione a un metodo o a un costruttore elimina gli avvisi non controllati relativi a un tipo di arity variabile (vararg) non modificabile e elimina gli avvisi deselezionati relativi alla creazione di matrici con parametri nei siti di chiamata.

Oltre alle restrizioni di utilizzo imposte dalla Target @Target meta-annotazione, i compilatori devono implementare restrizioni di utilizzo aggiuntive per questo tipo di annotazione; si tratta di un errore in fase di compilazione se un metodo o una dichiarazione del costruttore viene annotato con un'annotazione @SafeVarargs e: <ul><li> la dichiarazione è un metodo o un costruttore di arità fisso

<li> la dichiarazione è un metodo di arità variabile che non è né staticfinalprivate.

</ul>

I compilatori sono invitati a generare avvisi quando questo tipo di annotazione viene applicato a un metodo o a una dichiarazione del costruttore in cui:

<ul>

<li> Il parametro di arity variabile ha un tipo di elemento modificabile, che include tipi primitivi, Object, e String. Gli avvisi deselezionati di questo tipo di annotazione non si verificano già per un tipo di elemento modificabile.

<li> Il corpo della dichiarazione del metodo o del costruttore esegue operazioni potenzialmente non sicure, ad esempio un'assegnazione a un elemento della matrice del parametro di arity della variabile che genera un avviso non selezionato. Alcune operazioni non sicure non attivano un avviso non selezionato. Ad esempio, l'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>

conduce a un oggetto ClassCastException in fase di esecuzione.

Le versioni future della piattaforma possono imporre errori del compilatore per tali operazioni non sicure.

</ul>

Aggiunta nella versione 1.7.

per java.lang.SafeVarargs.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Proprietà

Nome Descrizione
Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto di cui è stato eseguito il wrapping Java.

(Ereditato da IJavaPeerable)

Metodi

Nome Descrizione
AnnotationType()

Restituisce l'interfaccia di annotazione di questa annotazione.

(Ereditato da IAnnotation)
Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Equals(Object)

Restituisce true se l'oggetto specificato rappresenta un'annotazione equivalente logicamente a questa.

(Ereditato da IAnnotation)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
GetHashCode()

Restituisce il codice hash di questa annotazione.

(Ereditato da IAnnotation)
SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Asserzione programmatrice che il corpo del metodo o del costruttore con annotazioni non esegue operazioni potenzialmente non sicure sul parametro varargs.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
ToString()

Restituisce una rappresentazione di stringa di questa annotazione.

(Ereditato da IAnnotation)
UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Asserzione programmatrice che il corpo del metodo o del costruttore con annotazioni non esegue operazioni potenzialmente non sicure sul parametro varargs.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a