考慮代碼:可以用不同的參數化彈出兩次樣品豆嗎?
public class MyProcessor<T extends GenericData> implements ProcessorInterface<T> {
@Autowired
private List<SomeCriteria<T>> criterias;
@Override
public long calculate(T data) {
long result = 0;
for (SomeCriteria c : criterias) {
result += c.calculate(data);
}
return long;
}
}
因此,只有在SomeCriteria
實施和GenericData
的差異。例如。一個GenericData
有幾個 SomeCriteria
。因此,如果有3 GenericData
,纔有可能寫出像這樣的代碼:
public DataService {
@Autowire
private MyProcessor<DataOne> processorOne;
@Autowire
private MyProcessor<DataTwo> processorTwo;
@Autowire
private MyProcessor<DataThree> processorThree;
}
不必每次都寫實施處理器?
沒有必要使用'@ Qualifier'註釋來獲得通用支持,請參閱我的答案(或者最好閱讀關於[Spring Framework 4.0和Java泛型]的博客文章(https://spring.io/blog/) 2013/12/03/spring-framework-4-0-and-java-generics) – matsev