ISafeVarargs Interfaz

Definición

Aserción del programador de que el cuerpo del método o constructor anotado no realiza operaciones potencialmente no seguras en su parámetro 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
Atributos
Implementaciones

Comentarios

Aserción del programador de que el cuerpo del método o constructor anotado no realiza operaciones potencialmente no seguras en su parámetro varargs. Al aplicar esta anotación a un método o constructor, se suprimen las advertencias no activadas sobre un tipo de aridad de variable no repetible (vararg) y se suprimen las advertencias no activadas sobre la creación de matrices parametrizadas en los sitios de llamada.

Además de las restricciones de uso impuestas por su Target @Target meta anotación, los compiladores deben implementar restricciones de uso adicionales en este tipo de anotación; es un error en tiempo de compilación si una declaración de método o constructor se anota con una @SafeVarargs anotación y: <ul><li> la declaración es un método de aridad fijo o constructor.

<li> la declaración es un método de aridad variable que no static es ni ni finalprivate.

</ul>

Se recomienda a los compiladores emitir advertencias cuando este tipo de anotación se aplica a un método o declaración de constructor donde:

<ul>

<li> El parámetro de aridad de variable tiene un tipo de elemento reifiable, que incluye tipos primitivos, Object, y String. (Las advertencias desactivadas que este tipo de anotación suprime ya no se producen para un tipo de elemento actualizable).

<li> El cuerpo de la declaración de método o constructor realiza operaciones potencialmente no seguras, como una asignación a un elemento de la matriz del parámetro de arity variable que genera una advertencia no desactivada. Algunas operaciones no seguras no desencadenan una advertencia desactivada. Por ejemplo, el alias en

<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 ClassCastException en tiempo de ejecución.

Las versiones futuras de la plataforma pueden exigir errores del compilador para estas operaciones no seguras.

</ul>

Agregado en la versión 1.7.

Java documentación para java.lang.SafeVarargs.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Propiedades

Nombre Description
Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve un JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Nombre Description
AnnotationType()

Devuelve la interfaz de anotación de esta anotación.

(Heredado de IAnnotation)
Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Equals(Object)

Devuelve true si el objeto especificado representa una anotación que es lógicamente equivalente a esta.

(Heredado de IAnnotation)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
GetHashCode()

Devuelve el código hash de esta anotación.

(Heredado de IAnnotation)
SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Aserción del programador de que el cuerpo del método o constructor anotado no realiza operaciones potencialmente no seguras en su parámetro varargs.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
ToString()

Devuelve una representación de cadena de esta anotación.

(Heredado de IAnnotation)
UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Aserción del programador de que el cuerpo del método o constructor anotado no realiza operaciones potencialmente no seguras en su parámetro varargs.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a