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
Н