AE
inline fun <reified T: IFoo<V>, V> createBar() : Bar<V> {
return Bar<V>()
}
Size: a a a
AE
inline fun <reified T: IFoo<V>, V> createBar() : Bar<V> {
return Bar<V>()
}
AE
interface IFoo<A>
class Foo: IFoo<String>
class Bar<A>: IFoo<A>
inline fun <reified T: IFoo<*>> createBar(){
val type = T::class.supertypes[0].arguments[0].type // String
// Bar2<type>() ??
}
createBar<Foo>()
Bar<String>()
оттуда?inline fun <reified T: IFoo<V>, V> createBar(foo: T) : Bar<V> {
return Bar<V>()
}
AE
val foo = Foo()
val bar = createBar(foo)
AO
U
AE
U
R
AO
AO
IN
IN
AN
AN
AO
AN
QH
R
QH
R