Android RoboGuice使用指南(12):如何綁定generic類型

如果需要註入某個參數化類型,比如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)的用法。

 

摘自 引路蜂移動軟件

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。