0

現時点では、次のような名前付きパラメーターでアシスト インジェクションを使用しています。

public interface Factory {
public MyObject create(@Assisted("string1") String string1, @Assisted("string2") String string2);
}

これはうまくいきます。しかし、パラメーターの識別子として文字列を使用するのは少し見苦しいと思います。私がやりたいことは次のとおりです。

public interface Factory {
public MyObject create(@String1 String string1, @String2 String string2);
}

したがって、基本的には、カスタムの補助注釈が必要です。これを行う方法はありますか?

4

1 に答える 1

1

私の知る限り、そのスタイルのカスタム@Assistedアノテーションは機能として存在しません。同じタイプのアシストインジェクトパラメータを区別する唯一の方法は、あなたが言ったように、名前@Assisted付きアノテーションを使用することです。

あなたが提案するものは実装可能かもしれないので、それが価値があると思うなら、いつでもGuiceサイト[1]で機能リクエストを提出することができます。

私の直感は、このアプローチでは付加価値があまり高くないということです。ただし、アノテーションの意味@Assisted大きく異なりますが、通常のバインディングアノテーションと混同されやすいためです。さらに、注釈タイプを定義するにはかなりの量の定型文が必要です。

  1. http://code.google.com/p/google-guice/
于 2012-05-27T14:44:22.787 に答える