Serializable

Javajava.io

概要

 状態:-  閲覧数:1,821  投稿日:2013-11-04  更新日:2013-11-04  
シリアライズ(直列化)とは?
・そのオブジェクトの状態を表す変数(フィールド)と、場合によってはオブジェクトの種類(クラス)を表すなんらかの識別子を、「ファイル化できるようなバイト列やXMLフォーマットの形」に書き出すこと

シリアライズの目的
・オブジェクトの表すデータを、「ファイル保存」「ファイル読込」「ネットワーク送信」するため

java.io.Serializableインタフェース
・オブジェクトをシリアライズ可能にするには、そのクラスがjava.io.Serializableインタフェース(以下、Serializableインタフェース)を実装する必要がある
import java.io.Serializable;

@SuppressWarnings("serial")
public class RecordItem implements Serializable{


Serializableインタフェースの特徴

 閲覧数:490 投稿日:2013-11-04 更新日:2013-11-04 

特徴


Serializableインタフェースの特徴
・メソッド、フィールドがなく、「シリアライズが可能であるという意味を識別する機能」だけを備えている
・implements Serializable とだけ記述すれば、他にメソッドを実装するなどの手間は必要ない

注意事項
・実装クラス内のフィールドはプリミティブ型(intやboolean)か、もしくはシリアライズ可能なクラスでなければならない

オブジェクトのシリアライズで使用されるクラス
・ObjectOutputStreamクラス
・ObjectInputStreamクラス

Serializableをimplementsしていない状態で、そのオブジェクトをシリアライズしようとすると?
・NotSerializableExceptionが発生

シリアライズできないクラス
・例えばStreamやConnectionはシリアライズできない

公式ページ
Java SE 7 Serialization-related APIs and Developer Guides
Serializable (Java Platform SE 7 )


コメント投稿(ログインが必要)