J2SE1.4の新機能にさわる3

作成 2002/1/10

XMLEncoder

java.beans.XMLEncoderを使うと、 オブジェクト(JavaBeans)を簡単にXMLに保存することができます。

使ってみる

このクラス (WordModel.java) のオブジェクトのListをXML形式で保存したい、ってな時。

こんな感じ(XMLED.java) で保存、復元できます。

作成されたXMLがこれ(aaa.xml)

JavaBeans

XML化できるのはJavaBeansだけです。

JavaBeansっていうのは詳しく知りませんが、 簡単に言うとこんなもの。

  1. 引数なしのコンストラクタがある
  2. セッタ、ゲッタがある
  3. Serializableインターフェイス付き

今回XML化するには3は不要で、 とりあえず、1、2ですね。

何に使える?

単にSerializeをimplemetnsするような簡単さで、 XMLが作れます。

publicなセッタ、ゲッタから保存、復元されるので、 永続化につきまとうクラスのバージョン違いに悩まされません。

簡単な設定ファイルや、 目で見てわかる形式、手で編集できる形式で状態保存したいとき、 いいんでないでしょうか。 私はとりあえず、わーどばとらー(趣味のWebゲーム)のデータ保存に 使おうかと思ってます。

何に使えない?

JavaBeans以外のクラスでは使えません。

セキュリティーが気になる場面では使えません。 カスタムSerializebleやExternalizableの実装で、 これを使うのもアリでしょうが、 データは覗かれやすいし、編集されやすい感じ。

クラスのスキーマは保存されません。 保存されるのはインスタンスのデータです。 オブジェクトの振る舞いなども保存されません。 (そういう用途にはJAXBとか?触ってないけど)。

ところで

ArrayListってJavaBeansなの?
TOP