Подстановочный шаблон дженериков Котлина с расширением

Итак, я пытался внедрить некоторую Java в Kotlin, и я столкнулся с этой проблемой передачи аргументов в подстановочные общие методы класса. Например:

interface A class B<in T : A> { fun pass(e: T) { /* do something */ } } class C { private val things = mutableListOf<B<*>>() fun test(e: A) { things.get(0)?.pass(e) // This doesn't work, since wildcard B generic wants Nothing, since Nothing can be safely passed to it. // but, I know that `e` is passable to `pass` method, since // its an impl of A } } 

Это можно реализовать на Java, но это в Котлине? Если да, то как мне это сделать?

Если вы уже знаете, что T должен расширять A, вы можете указать это в инициализации C.things.

 private val things = mutableListOf<B<A>>()