注釈に応じてクラスの 2 つの異なるインスタンスをバインドできるようにする Guice バインディング注釈を作成しました。
bind(Animal.class).withAnnotation(Cat.class).toInstance(new Animal("Meow"));
bind(Animal.class).withAnnotation(Dog.class).toInstance(new Animal("Woof"));
クラスの 1 つに依存する List を提供するプロバイダー メソッドを作成できることを望んでいましたが、これに注釈を使用する方法がわかりません。
@Provider
List<Animal> provideAnimalList() {
List<Animal> animals = new ArrayList<Animal>();
animals.add(@Cat Animal.class); // No, but this is what I want
animals.add(@Dog Animal.class); // No, but this is what I want
return animals;
}
add()
したがって、リストのメソッドへの引数で注釈を使用できると想定していましたが、そうではありません。
これにどのようにアプローチすればよいですか?私には、Animal クラスの 2 つのインスタンスの方が単純なように思えnew
ますが、これはバインディング アノテーションの使用方法ではないかもしれません。
このシナリオでバインディング アノテーションを最大限に活用する方法についてコメントをいただければ幸いです。
ありがとう