ISerial Интерфейс

Определение

Указывает, что аннотированные поля или метод являются частью механизма сериализации, определяемого <объектом cite> Java Спецификация сериализации< объектов/cite>.

[Android.Runtime.Register("java/io/Serial", "", "Java.IO.ISerialInvoker", ApiSince=34)]
public interface ISerial : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("java/io/Serial", "", "Java.IO.ISerialInvoker", ApiSince=34)>]
type ISerial = interface
    interface IAnnotation
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Атрибуты
Реализации

Комментарии

Указывает, что аннотированные поля или метод являются частью механизма сериализации, определяемого <объектом cite> Java Спецификация сериализации< объектов/cite>. Этот тип заметки предназначен для разрешения проверки времени компиляции объявлений, связанных с сериализацией, аналогично проверке, включенной java.lang.Override типом заметки для проверки переопределения метода. Serializable Классы рекомендуется использовать @Serial заметки, чтобы помочь компилятору перехватывать неправильно объявленные сериализации поля и методы, неправильные объявления, которые в противном случае могут быть трудно обнаружить.

В частности, заметки этого типа должны применяться к методам и полям, связанным с сериализации, в классах, объявленных.Serializable Ниже перечислены пять методов, связанных с сериализацией:

<ul><li<private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException>><private void writeObject(java.io.ObjectOutputStream stream) throws IOExceptionliANY-ACCESS-MODIFIERli>>private void readObjectNoData() throws ObjectStreamException<ANY-ACCESS-MODIFIERObject readResolve() throws ObjectStreamException<<Object writeReplace() throws ObjectStreamException/ul>>

Два поля, связанные с сериализацией, являются следующими:

<ul>li li<>private static final ObjectStreamField[] serialPersistentFields<>private static final long serialVersionUID/ul<>

Компиляторы рекомендуется проверить, является ли метод или поле, помеченное @Serial заметкой, является одним из определенных методов сериализации или полей, объявленных в понятном контексте, и выдает предупреждение, если это не так.

Это семантическая ошибка для применения этой заметки к другим полям или методам, включая поля <или методы ul><li>в классе, которые не Serializable<являются полями ли>или методами правильного структурного объявления, но в типе, где они неэффективны. Например, типы определяются таким образом, enum что serialVersionUID0LserialVersionUID поле, объявленное в типе enum , игнорируется. Указанные выше пять методов сериализации также игнорируются для enum типа.

<li>в классе, который : Externalizable<объявления writeObjectметода ul><li> , readObjectи readObjectNoData<li>объявление поля для serialPersistentFields</ul>

Externalizable Хотя интерфейс расширяетсяSerializable, три метода и одно поле выше не/em> используются<<> для внешних классов.

</ul>

Обратите внимание, что механизм сериализации обращается к назначенным полям и методам, отражая их, и эти поля и методы могут отображаться в противном случае неиспользуемые в Serializable классе.

Добавлено в 14.

Java документации по java.io.Serial.

Части этой страницы — это изменения на основе работы, созданной и общей 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)

Указывает, что аннотированные поля или метод являются частью механизма сериализации, определяемого <объектом cite> Java Спецификация сериализации< объектов/cite>.

(Унаследовано от 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)

Указывает, что аннотированные поля или метод являются частью механизма сериализации, определяемого <объектом cite> Java Спецификация сериализации< объектов/cite>.

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

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