Guiceを使用して次の作業を行うにはどうすればよいですか?カスタム注釈のインスタンスに特定のパラメータをバインドするにはどうすればよいですか?
// The Guice Module configuration
void configure() {
// The following won't compile because HelpTopicId is abstract.
// What do I do instead?
bind(new TypeLiteral<String>(){}).
annotatedWith(new HelpTopicId("A")).toInstance("1");
bind(new TypeLiteral<String>(){}).
annotatedWith(new HelpTopicId("B")).toInstance("2");
}
public @interface HelpTopicId {
public String helpTopicName();
}
public class Foo {
public Foo(@HelpTopicId("A") String helpTopicId) {
// I expect 1 and not 2 here because the actual parameter to @HelpTopicId is "A"
assertEquals(1, helpTopicId);
}
}
有効なポイントは...まだ、 'configure()'のコードはコンパイルされません。 – ripper234
私はちょうど試したことがあり、 'configure()'の上書きされたメソッドはうまくコンパイルされています。コンパイラが提供しているメッセージは何ですか? –
ああ、申し訳ありませんが、私は自分の利益のためには速すぎました。私は特に名前付きのものではなくカスタムアノテーションについて尋ねました(私はそれらに精通しています)。 – ripper234