Вы не можете сделать это, потому что класс Kotlin должен иметь уникальное полностью определенное имя (то есть его имя пакета плюс простое имя Tuple
).
В зависимости от того, чтовы можете назвать эти классы в соответствии с шаблоном TupleN
(Tuple1
, Tuple2
и т. д.) и создать общий интерфейс Tuple
, а также набор фабричных функций с общим именем (tuple(...)
) сразличное количество параметров для создания кортежей разной арности:
fun <T1> tuple(t1: T1) = Tuple1(t1)
fun <T1, T2> tuple(t1: T1, t2: T2) = Tuple2(t1, t2)
fun <T1, T2, T3> tuple(t1: T1, t2: T2, t3: T3) = Tuple3(t1, t2, t3)
/* ... */
Столкнувшись с подобной проблемой, я лично прибегнул к генерации классов TupleN
, которые янеобходимо.