Параметры типа могут быть определены только для
- типы (т.е. классы / интерфейсы),
- методов и
- Конструкторы.
Вам потребуется параметр типа для локального блока, что невозможно.
Да, я тоже иногда что-то пропускал.
Но на самом деле здесь нет проблемы с отсутствием встроенного метода - если он представляет узкое место в производительности, где помогает вставка, Hotspot снова его встроит (не заботясь о типе).
Кроме того, наличие отдельного метода позволяет дать ему описательное имя.
Просто идея, если вам это нужно часто:
interface DoWithFM {
void <T> run(FactManager<T> t);
}
...
for (FactManager<?> factManager : factManagers) {
...
new DoWithFM() { public <T> run(FactManager<T> factManager) {
for (T fact : factManager) {
factManager.doSomething(fact);
}
}.run(factManager);
...
}
...