上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    Javaオブジェクトのシリアライズ

    プログラムの状態を一時保存するために、Javaのシリアライズ機能を使って、ファイルに出力しようとしたが、Imageオブジェクトはシリアライズできませんと怒られてしまう。

    ということなので、イメージの生成元のGIFファイルの位置(ロケーション)を覚えておいてファイルに格納してやろうと思ったわけだ。

    プログラムはAppletなので、
    img = aplt.getImage(aplt.getCodeBase(), "./img/mogemoge.gif");
    とかやってImageオブジェクトを生成しているが、一度imgオブジェクトを作成してしまうと、そのイメージオブジェクトの生成元がmogemoge.gifだったという情報を、Imageオブジェクト自体は保持していないらしい。

    う~ん。困ったものだ。
    (イメージの生成元を保持して「いるかいないか」という部分は、ちょっと調べてわからなかったので、「保持していない」としてしまったのだが、本当の所はどうなのか僕にはよくわからないし、わかる必要もない。きっと世の中はそういうものであふれていて、それがありふれた日常なのだと、僕はいつも思う。)

    というわけで、Image部分は生成元ファイル名を格納する形に、シリアライズする前に変換したいのだが、どうしたものだろう・・・

    プログラムの作りを1から変えて、状態保存のための変数に、何か変更があるたびに記録する形をとろうか?めんどくさいし、かっこ悪いから「いやだなぁ~。」

    しばらく時が流れる・・・・・

    いつものパターンだと、ここいら辺で、納期を守るための機構が働き、「かっこ悪くても」バシバシコードを生産する。そして時間が余ったら、いろいろと工夫をする。

    それがいつものパターンだ。

    しかし今日は、ちょっと違うようだ。

    いずれにしてもかっこ悪いのだが、Imageオブジェクトのequalsメソッドを使用して、画像が同じものかどうか判断し、生成元画像のファイル名を保存することにしよう。

    これで一件落着だろうと思う。
    以上!

    コメントの投稿

    非公開コメント

    Google広告
    Amazon商品紹介
    Amazon
    楽天
    最新記事
    最新コメント
    最新トラックバック
    月別アーカイブ
    プロフィール

    アブラクサス太郎

    Author:アブラクサス太郎
    FC2ブログへようこそ!

    カテゴリ
    検索フォーム
    RSSリンクの表示
    リンク
    ブロとも申請フォーム

    この人とブロともになる

    QRコード
    QR
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。