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>
@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>
приводит к выполнению ClassCastException во время выполнения.
Будущие версии платформы могут потребовать ошибок компилятора для таких небезопасных операций.
</ul>
Добавлено в версии 1.7.
Java документации по java.lang.SafeVarargs.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Свойства
| Имя | Описание |
|---|---|
| Handle |
Возвращает значение JNI базового объекта Android. (Унаследовано от IJavaObject) |
| JniIdentityHashCode |
Возвращает значение |
| JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
| JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
| PeerReference |
JniObjectReference Возвращает экземпляр объекта в оболочке Java. (Унаследовано от IJavaPeerable) |
Методы
| Имя | Описание |
|---|---|
| AnnotationType() |
Возвращает интерфейс заметки этой заметки. (Унаследовано от IAnnotation) |
| Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
| DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
| Equals(Object) |
Возвращает значение true, если указанный объект представляет заметку, которая логически эквивалентна этому объекту. (Унаследовано от IAnnotation) |
| Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
| GetHashCode() |
Возвращает хэш-код этой заметки. (Унаследовано от IAnnotation) |
| SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
| SetJniManagedPeerState(JniManagedPeerStates) |
Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром varargs. (Унаследовано от IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
| ToString() |
Возвращает строковое представление этой заметки. (Унаследовано от IAnnotation) |
| UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Программист утверждал, что текст аннотированного метода или конструктора не выполняет потенциально небезопасные операции с параметром varargs. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |