Consider a code:
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;
}
}
So the difference only in SomeCriteria
implementation and GenericData
. E.g. for one GenericData
there are several
SomeCriteria
. So if there are 3 GenericData
is it possible to write a code like that:
public DataService {
@Autowire
private MyProcessor<DataOne> processorOne;
@Autowire
private MyProcessor<DataTwo> processorTwo;
@Autowire
private MyProcessor<DataThree> processorThree;
}
Without writing implementation for processor each time?