2012-01-15 40 views
-1

私はインターフェイスを実装するクラスを考えましたはすべてのインターフェイスのメソッドを実装する必要があります。なぜSerializableインターフェイスを実装するクラスはインターフェイスのメソッドを実装していませんか?Serializableインターフェイスを実装するクラスがインターフェイスのメソッドを実装しない理由を教えてください。

+1

実装するための必須の方法はありません。そのマーカーインターフェイスです。 –

+0

私が探していた答えは、あなたがネストされたクラスの中にありシリアル化可能であるとマークされていないシリアライズされたクラスを送ると、ネストされたクラスなしでオブジェクトが送られるという事実でした。送信します。 –

+0

あなたはそれを求める*オブジェクト*のみを送信します。クラスを送信するのではなく、クラスに内部クラスがあるかどうかは、Serializableとマークされているかどうかに関わらず気にしません。 –

答えて

2

一部のインターフェイスは、単にクラスのマーカーとして機能します。シリアライズ可能なのはその1つです。このメソッドは、シリアライズおよびデシリアライズするためにオブジェクトに特別な処理が必要な場合にのみ使用されます。

3

Serializableは、オブジェクトのシリアル化のための「マーカー」インターフェイスであり、メソッドが定義されていないためです。 Javadocから:

直列化インタフェースはメソッドまたはフィールドがなく、直列化可能であることの意味をのみ を識別するのに役立ちます。

そしてSDNから:

オブジェクトは、オブジェクトがバイトに平らにし、その後膨張させることができるという基本的なAPI に意味 java.io.Serializableインタフェースを実装することにより、直列化可能マークされています今後は となります。

関連する問題