En Kotlin, ¿cómo puedo instanciar una class genérica usando un parámetro nativo de Java?

Estoy explorando el uso de BDB JE (Berkeley DB Java Edition) con Kotlin. El conocimiento de BDB no es necesario para responder esta pregunta.

BDB tiene un método que se ve así:

store.getPrimaryIndex(Int::class.java, "Int", Person::class.java, "Person") 

Quiero hacer cosas genéricamente, así que escribí esto

 inline fun <reified TModel : Any, reified TKey : Any> getIndex() = return store.getPrimaryIndex(TKey::class.java, TKey::class.simpleName, TModel::class.java, Model::class.simpleName) 

Hasta aquí todo bien. Ahora quiero pasar este object de índice a una class, que se ve así:

 class ModelStore<TModel, TKey>(index : PrimaryIndex<TKey, TModel>) { private val index = index fun get(key : TKey): TModel = index.get(key) fun put(model : TModel) = index.put(model) } 

Pero si bash pasar la salida de getIndex<User, Int>() a ModelStore<User, Int> obtengo el siguiente error:

Falló la inferencia de tipo: No coincide el tipo previsto: el tipo inferido es PrimaryIndex<TModel!, TKey!>! pero se PrimaryIndex<TModel, TKey> .

Mi pregunta: ¿Puedo pasar el índice a la ModelStore ? ¿Cómo convenzo al sistema de types de que esto es kosher?