水曜日, 10月 22, 2008

コンストラクタインジェクション-tyep指定とindex指定

はたして使うのかどうか。。。 とにかく一度動かしてみようってなことで、 あれこれ、リファレンスを見ながらやってみた。 いろいろと種類があるもんだ。 その中でもindex指定ってのがあった。 要はコンストラクタのパラメータの順番に設定を定義していくというものである。 で、気になったのがコンストラクタの定義が
/** 実験 */
public class Hoge {
private Foo foo;
private Bar bar;
/** コンストラクタ1つ目 */
public Hoge(Foo foo, Bar bar) {
 this.foo = foo;
 this.bar = bar;
}
/** コンストラクタ2つ目 */
public Hoge(int number, String string) {
 new HogeExt(number, string);
}
public Hoge() {
 // コンパイラを通すのにとりあえず定義
}
}
class HogeExt extends Hoge {
private int number;
private String string;
public HogeExt(int number, String string) {
 this.number = number;
 this.string = string;
}
}
class Foo {
// とりあえず未定義
}
class Bar extends Foo {
// とりあえず未定義
}
コンストラクタのパラメータが2つの値を用意します。 index,valueな組み合わせを利用すると 単純なint,Stringの組み合わせが呼びだされる。 まぁ、当然と言えば当然なんだけど2つ目のコンストラクタが定義されていないときはExceptionが発生する。 どうしてもtypeではなくindexを使いたい場合はref属性で指定してやれば動いてくれることはわかった。 でも、コンストラクタインジェクションなんて使うかどうか。。。 僕的にはAspectJチック(と言っても範囲は広いけど)なことができれば十分だし。。。

0 件のコメント:

failed to read qemu headerのときのメモ

かなり久々。。。 忘れないようにここに書きこんでおく。 ちょっとした手違いで libvirtでイメージを起動しようとすると failed to read qemu header なんておっしゃられて起動しない。。。 vmwareserverを使って...