如果需要註入某個參數化類型,比如List<String>:
[java] class Example {
@Inject
void setList(List<String> list) {
…
}
}
class Example {
@Inject
void setList(List<String> list) {
…
}
}
可以使用TypeLiteral 來創建這個綁定。TypeLiteral 為一特殊類型可以用於表示參數化類型。
[java] @Override public void configure() {
bind(new TypeLiteral<List<String>>() {})
.toInstance(new ArrayList<String>()); }
@Override public void configure() {
bind(new TypeLiteral<List<String>>() {})
.toInstance(new ArrayList<String>()); }
或者使用@Provides 方法:
[java] @Provides List<String> providesListOfString() {
return new ArrayList<String>();
}
@Provides List<String> providesListOfString() {
return new ArrayList<String>();
}
到目前為止,基本介紹瞭Google Guice 的用法,上面用法也適用於Java SE,Java EE平臺,更詳細的可以參見英文文檔 ,後面接著介紹和Android平臺相關的Dependency Injection (Roboguice)的用法。
摘自 引路蜂移動軟件