QH
interface ДвусторонняяФункция<T, R> {
fun туда(T): R
fun обратно(R): T
}?
Size: a a a
QH
interface ДвусторонняяФункция<T, R> {
fun туда(T): R
fun обратно(R): T
}RI
T
RK
interface ДвусторонняяФункция<T, R> {
fun туда(T): R
fun обратно(R): T
}АД
АД
IO
DataType<T, *>AS
sealed class DataType<T> {
class Simple<T> : DataType<T>()
class Complicated<T> : DataType<T>()
}
class Custom<T, DT : DataType<T>>(val type: DT)
Нужно принять в функцию объект типа Simple<T> или Custom<Simple<T>>.Common<T, Simple<T>>, но тогда прорастает лишний типовой параметр и получается каша:sealed class Common<T, DT : DataType<T>> {
sealed class DataType<T, SELF : DataType<T>>
: Common<T, SELF>() {
class Simple<T>
: DataType<T, Simple<T>>()
class Complicated<T>
: DataType<T, Complicated<T>>()
}
class Custom<T, DT : DataType<T>>(val type: DT)
: Common<T, DT>()
}
«Что ты, чёрт побери, делаешь?»
AN
interface ДвусторонняяФункция<T, R> {
fun туда(T): R
fun обратно(R): T
}AN
AO

AO
AN

AN
TS
AN
Н
AN
Н