ISafeVarargs Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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é static né finalprivate.
</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>
@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>
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.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| 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 |