凪瀬 Blog
Programming SHOT BAR

目次

Blog 利用状況
  • 投稿数 - 260
  • 記事 - 0
  • コメント - 48909
  • トラックバック - 192
ニュース
広告
  • Java開発者募集中
  • 経歴不問
  • 腕に自信のある方
  • 富山市内
  • (株)凪瀬アーキテクツ
アクセサリ
  • あわせて読みたい
凪瀬悠輝(なぎせ ゆうき)
  • Java技術者
  • お茶好き。カクテル好き。
  • 所属は(株)凪瀬アーキテクツ
  • Twitter:@nagise

書庫

日記カテゴリ

 

前回 継承でうまく表現できないという話をしていましたが、継承ではなく委譲を用いれば型の互換の問題は解決できますね。

/** HTMLエスケープされた文字列を表すクラス */
public class HtmlEscapedString {
    private String escString;

    public HtmlEscapedString(RawString rawString) {
        this.escString = escape(rawString.getRawString());
    }
    /** @return HTMLエスケープされた文字列をString型で返す */
    public String getHtmlEscapedString() {
        return this.escString;
    }

    @Override
    public String toString() {
        return this.escString;
    }

    String escape(String param) {
        // TODO エスケープ処理
        return null;
    }
}

/** エスケープされていない生の文字列を現すクラス */
public class RawString {
    private String rawString;

    public RawString(String param) {
        this.rawString = param;
    }
    /** @return 生の文字列をString型で返す */
    public String getRawString() {
        return this.rawString;
    }
    @Override
    public String toString() {
        return this.rawString;
    }
}

既存のライブラリをあわせて使うのが難しくなるのが泣き所ですが、たとえば文字列型なら java.lang.CharSequenceを実装することで正規表現には対応できます。
数値型なら java.lang.Number を継承する手もありますが、こちらは継承したところで2次利用がしにくいようですね…。
クラスjava.lang.Numberの使用

投稿日時 : 2007年8月31日 18:35
コメント
  • # re: 型で表現されない型 補足
    かつのり
    Posted @ 2007/08/31 18:57
    実は自分もほぼ同じサンプルコードを考えていましたw

    Numberに関しては、Commons LangにNumberを継承した、
    MutableInteger/MutableDouble...等のクラス郡がありますね。完全に割り切りでしょうね。

    例のPJの中にJsonデータモデルがありますが、
    JsonStringとかJsonNumberはCharSequenceやNumberを実装/継承しています。
  • # re: 型で表現されない型 補足
    凪瀬
    Posted @ 2007/08/31 20:32
    MutableIntegerですか。割り切って使うにはアリかなぁ。
    第人数開発での防衛的プログラミングとしては使いたくなることはあるだろうなぁ。
  • # re: 型で表現されない型 補足
    さかもと
    Posted @ 2007/09/02 1:12
    「ハイ、上げた」
    ってそんなネタやるわけ・・・、ないとは言い切れない自分がいます。
    こんばんわ、さかもとと申します。

    えっと。
    あぁ、あれね。私も割り切って使う分にはアリかなって思います。あそこをもう少しこうすればもっと良くなると思います。あっ、そうすると・・・、そっかぁー・・・。



    わかっているフリをさせて頂きまして恐縮です。

    今後ともよろしくお願いいたします。
  • # re: 型で表現されない型 補足
    凪瀬
    Posted @ 2007/09/02 9:31
    >さかもとさま

    何の話かと思ったら、そちらのblogで私の名を騙って書き込んだ輩がいたようですね。
    なりすまされるのも嫌なもんですね。

    それはさておき、よろしくお願いします。
  • # re: 型で表現されない型 補足
    さかもと
    Posted @ 2007/09/02 16:47
    さかもとです。
    全く気がつきませんでした。あまりにもさりげなかったので・・・(笑)すいません。
    ちゃんと注意勧告させて頂きました。

タイトル
名前
Url
コメント