Проблема не в использовании DefaultDirectedGraph
, а в том, что U
не реализован в вашем классе GraphManipulation
. Поскольку классы не могут иметь параметры класса reified (пока?), Вам нужно взять класс в качестве параметра конструктора:
class GraphManipulation<T,U>(private val uClass: Class<U>) {
val g = DefaultDirectedGraph<T, U>(uClass)
}
Где reified
может помочь, это сделать вспомогательный метод
inline fun <T, reified U> GraphManipulation(): GraphManipulation<T,U> = GraphManipulation(U::class.java)