あるいは、Genericタイプの着いたクラスをコンテナで管理する方法。
Google Guiceをいろいろ試してていろいろ日本語情報で見つからないのがあったので、メモしておく。
登録
TypeLiteralを使ってあげる。
List<IService> list = new ArrayList<IService>(); list.add(new ServiceA()); list.add(new ServiceB()); binder.bind(new TypeLiteral<List<IService>>() {}).toInstance(list);
リストの中身は当然コンテナ管理にはならないざんす。
http://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions
取得
List<IService> list = injector.getInstance(Key.get(new TypeLiteral<List<IService>>(){}));
TypeLiteralを持ったKeyを使ってやればOK.