2

多くの GUI 要素タイプがあり、GUI のロード後にコードで直接使用します。GUI ローダーがそれらを作成するために既存の要素について知る必要がない限り、それは問題ありません。

public final class VerticalBox extends Element {

    ...

    private static final ElementType type;
    static {
        type = ElementType.register("VerticalBox",
                new ElementType.ICreator() {
                    @Override
                    public Element create(GUI gui) {
                        return new VerticalBox(gui);
                    }
                });
    }

    @Override
    public ElementType getType() {
        return type;
    }
}

init最も簡単な方法は、各要素クラス内に静的関数を作成することですが、それらinitはそれぞれに対して呼び出す必要があります。

JavaEE でいくつかの注釈を見たことがありますが、それらは逆に機能しているようです。からはすべて取得できますが、annotationsからは取得できclassません。私はこのトピックについて多くのグーグル検索を行いました。classesannotation

4

2 に答える 2

0

ここでは、必要に応じて初期化するある種の依存性注入を使用したいと考えています。Spring Framework、Google Guice、または Pico Container を見る価値があります。

ほとんどの場合、静的ブロックを完全に制御することはできず、単体テストが非常に複雑になるため、静的ブロックを使用することはお勧めできません。テストの順序は重要です。

于 2012-08-27T19:40:30.857 に答える
0

この答えに興味があるかもしれませんし、独立したままにしたいいくつかのjarにクラスが分割されている場合は、ServiceLoader メカニズムがうまくいくかもしれません。

于 2012-08-28T09:49:01.870 に答える