言語

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として宣言されたクラスのシリアル化関連のメソッドとフィールドに適用する必要があります。 シリアル化に関連する 5 つのメソッドは次のとおりです。

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

シリアル化に関連する 2 つのフィールドは次のとおりです。

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

コンパイラは、 @Serial 注釈でマークされたメソッドまたはフィールドが、意味のあるコンテキストで宣言された定義済みのシリアル化関連のメソッドまたはフィールドの 1 つであることを検証し、そうでない場合は警告を発行することをお勧めします。

この注釈を他のフィールドまたはメソッドに適用するのはセマンティック エラーです。たとえば、<ul><li>適切な構造宣言のSerializable<>フィールドまたはメソッドではないクラス内のフィールドまたはメソッドが、非効率的な型です。 たとえば、enum型は0LserialVersionUIDを持つよう定義されているため、enum型で宣言されたserialVersionUID フィールドは無視されます。 上記で示した 5 つのシリアル化関連メソッドも、 enum 型では同様に無視されます。

<li>Externalizableクラス: <ul><li>serialPersistentFields</ul のwriteObjectreadObject、およびreadObjectNoData<li>a フィールド宣言>

Externalizable インターフェイスはSerializable拡張されますが、上記の 3 つのメソッドと 1 つのフィールドは<em></em>外部化可能なクラスに使用されます。

</ul>

シリアル化メカニズムは、指定されたフィールドとメソッドに反射的にアクセスし、それらのフィールドとメソッドは、 Serializable クラスでは使用されていない可能性があることに注意してください。

14 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

注釈付きフィールドまたはメソッドが、<cite>Java オブジェクトシリアル化仕様</cite>によって定義されたシリアル化可能なシリアル化メカニズムの一部であることを示します。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 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)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

注釈付きフィールドまたはメソッドが、<cite>Java オブジェクトシリアル化仕様</cite>によって定義されたシリアル化可能なシリアル化メカニズムの一部であることを示します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象