Langage

ISerial Interface

Définition

Indique qu’un champ ou une méthode annoté fait partie du mécanisme de sérialisation sérialisable défini par le <cite> Java Object Serialization Specification</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
Attributs
Implémente

Remarques

Indique qu’un champ ou une méthode annoté fait partie du mécanisme de sérialisation sérialisable défini par le <cite> Java Object Serialization Specification</cite>. Ce type d’annotation est destiné à permettre la vérification au moment de la compilation des déclarations liées à la sérialisation, analogue à la vérification activée par le type d’annotation pour valider la java.lang.Override substitution de méthode. Serializable Les classes sont encouragées à utiliser @Serial des annotations pour aider un compilateur à intercepter les champs et méthodes liés à la sérialisation non déclarés, les déclarations incorrectes qui peuvent être difficiles à détecter.

Plus précisément, les annotations de ce type doivent être appliquées aux méthodes et champs liés à la sérialisation dans les classes déclarées comme Serializableétant . Les cinq méthodes liées à la sérialisation sont les suivantes :

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

Les deux champs liés à la sérialisation sont les suivants :

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

Les compilateurs sont encouragés à vérifier qu’une méthode ou un champ marqué avec une annotation est l’une @Serial des méthodes ou champs de sérialisation définis déclarés dans un contexte significatif et émettre un avertissement si ce n’est pas le cas.

Il s’agit d’une erreur sémantique pour appliquer cette annotation à d’autres champs ou méthodes, notamment : <ul<>li>fields ou méthodes dans une classe qui n’est pas<Serializable des>champs li ou des méthodes de la déclaration structurelle appropriée, mais dans un type où ils sont ineffectuels. Par exemple, enum les types sont définis pour avoir un 0LserialVersionUIDserialVersionUID champ déclaré dans un enum type est ignoré. Les cinq méthodes liées à la sérialisation identifiées ci-dessus sont également ignorées pour un enum type.

<li>dans une classe qui est Externalizable: <déclarations de méthode ul><li> de writeObject, readObjectet readObjectNoData<li>une déclaration de champ pour serialPersistentFields</ul>

Bien que l’interface Externalizable s’étendeSerializable, les trois méthodes et un champ ci-dessus ne sont>< pas</em> utilisés pour les classes externalisables.

</ul>

Notez que le mécanisme de sérialisation accède à ses champs et méthodes désignés de manière réfléchie et que ces champs et méthodes peuvent apparaître autrement inutilisés dans une Serializable classe.

Ajouté dans 14.

Java documentation pour java.io.Serial.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniObjectReferenceControlBlock

Indique qu’un champ ou une méthode annoté fait partie du mécanisme de sérialisation sérialisable défini par le <cite> Java Object Serialization Specification</cite>.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Nom Description
AnnotationType()

Retourne l’interface d’annotation de cette annotation.

(Hérité de IAnnotation)
Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Equals(Object)

Retourne true si l’objet spécifié représente une annotation qui est logiquement équivalente à celle-ci.

(Hérité de IAnnotation)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
GetHashCode()

Retourne le code de hachage de cette annotation.

(Hérité de IAnnotation)
SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Indique qu’un champ ou une méthode annoté fait partie du mécanisme de sérialisation sérialisable défini par le <cite> Java Object Serialization Specification</cite>.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
ToString()

Retourne une représentation sous forme de chaîne de cette annotation.

(Hérité de IAnnotation)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Indique qu’un champ ou une méthode annoté fait partie du mécanisme de sérialisation sérialisable défini par le <cite> Java Object Serialization Specification</cite>.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à