ISerial インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注釈付きフィールドまたはメソッドが、<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型は0LのserialVersionUIDを持つよう定義されているため、enum型で宣言されたserialVersionUID フィールドは無視されます。 上記で示した 5 つのシリアル化関連メソッドも、 enum 型では同様に無視されます。
<li>Externalizableクラス: <ul><li>serialPersistentFields</ul のwriteObject、readObject、およびreadObjectNoData<li>a フィールド宣言>
Externalizable インターフェイスはSerializable拡張されますが、上記の 3 つのメソッドと 1 つのフィールドは<em></em>外部化可能なクラスに使用されます。
</ul>
シリアル化メカニズムは、指定されたフィールドとメソッドに反射的にアクセスし、それらのフィールドとメソッドは、 Serializable クラスでは使用されていない可能性があることに注意してください。
14 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
注釈付きフィールドまたはメソッドが、<cite>Java オブジェクトシリアル化仕様</cite>によって定義されたシリアル化可能なシリアル化メカニズムの一部であることを示します。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| AnnotationType() |
この注釈の注釈インターフェイスを返します。 (継承元 IAnnotation) |
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Equals(Object) |
指定したオブジェクトがこのオブジェクトと論理的に等価な注釈を表す場合は true を返します。 (継承元 IAnnotation) |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| GetHashCode() |
この注釈のハッシュ コードを返します。 (継承元 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
注釈付きフィールドまたはメソッドが、<cite>Java オブジェクトシリアル化仕様</cite>によって定義されたシリアル化可能なシリアル化メカニズムの一部であることを示します。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| ToString() |
この注釈の文字列形式を返します。 (継承元 IAnnotation) |
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
注釈付きフィールドまたはメソッドが、<cite>Java オブジェクトシリアル化仕様</cite>によって定義されたシリアル化可能なシリアル化メカニズムの一部であることを示します。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|