Существующие типы были созданы для этой ситуации.См. Объединение Scala и Java в бесплатной онлайн-версии Программирование на Scala .
Так что вам может потребоваться определить:
def loadAll(cacheName: String, tx: GridCacheTx,
keys:Collection[T] forSome {T <: K},
c: GridInClosure2[K,V])
Я думаю, что Collection[_ <: K]
также может работать.
Я также где-то читал, что абстрактные типы также могут быть использованы для решения аналогичной ситуации, но сейчас я не могу найти ссылку, поэтомуЯ не уверен, охватывал ли это этот случай или нет. edit: на самом деле он тоже в книге (пример SetAndType в следующем абзаце) .