StrategyPriority highestPriority = StrategyPriority.CANT_HANDLE;
T strategyToUse = null;
for (T strategy : collection) {
StrategyPriority priority = canHandle.canHandle(strategy);
if (priority.ordinal() > highestPriority.ordinal()) {
highestPriority = priority;
strategyToUse = strategy;
}
}