ISafeVarargs Интерфейс

Определение

Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром 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
Атрибуты
Реализации

Комментарии

Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром varargs. Применение этой заметки к методу или конструктору подавляет снятые предупреждения о неизменяемом типе arity переменной (vararg) и подавляет предупреждения о создании параметризованного массива на сайтах вызовов.

Помимо ограничений использования, введенных метаметкой Target @Target , компиляторы должны реализовать дополнительные ограничения использования для этого типа заметки; это ошибка во время компиляции, если объявление метода или конструктора аннотировано @SafeVarargs с заметкой, и либо: <ul><li> объявление является фиксированным методом arity или конструктором.

<li> объявление является методом arity переменной, который не является ни ни staticfinalprivate тем, ни.

</ul>

Компиляторы рекомендуется выдавать предупреждения, если этот тип заметки применяется к объявлению метода или конструктора, где:

<Ул>

<li> Параметр arity переменной имеет изменяемый тип элемента, который включает примитивные типы, Objectи String. (Снятые предупреждения, которые этот тип заметки подавляет, уже не возникает для повторного типа элемента.)

<li> Текст объявления метода или конструктора выполняет потенциально небезопасные операции, такие как назначение элементу массива параметра arity переменной, который создает предупреждение без проверки. Некоторые небезопасные операции не активируют предупреждение без проверки. Например, псевдоним в

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

приводит к выполнению ClassCastException во время выполнения.

Будущие версии платформы могут потребовать ошибок компилятора для таких небезопасных операций.

</ul>

Добавлено в версии 1.7.

Java документации по java.lang.SafeVarargs.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя Описание
Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
PeerReference

JniObjectReference Возвращает экземпляр объекта в оболочке Java.

(Унаследовано от IJavaPeerable)

Методы

Имя Описание
AnnotationType()

Возвращает интерфейс заметки этой заметки.

(Унаследовано от IAnnotation)
Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если нет невыполненных ссылок на этот экземпляр, то вызывается Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Equals(Object)

Возвращает значение true, если указанный объект представляет заметку, которая логически эквивалентна этому объекту.

(Унаследовано от IAnnotation)
Finalized()

Вызывается при завершении экземпляра.

(Унаследовано от IJavaPeerable)
GetHashCode()

Возвращает хэш-код этой заметки.

(Унаследовано от IAnnotation)
SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром varargs.

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
ToString()

Возвращает строковое представление этой заметки.

(Унаследовано от IAnnotation)
UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром varargs.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к