Достаточно часто на практике возникает необходимость воспользоваться такими конструкциями как «пара» (Pair<First, Second>
), менее часто «тринарными» объектами (Triplet<First, Second, Third>
) и более длинными цепочками ассоциированных объектов. В связи с чем всегда удивлялся, почему в JDK (в java.lang.*
или java.util.*
) до настоящего момента нет стандартной Pair<First, Second>
или более длинных конструкций. Думаю многие программисты практикующие на Java имеют свою реализацию «пары». Не исключением являюсь и я.
И вот в очередной раз наткнувшись на необходимость работать с большим количеством различных кортежей, решил взяться за эту проблему системно. Придумал название проекту, определил цели и после экспериментов, занявших некоторое время, выложил код ( git://github.com/telesik/rumba.git ).
Чего хотелось достичь:
- Необходима удобная конструкция (назовем ее кортеж) для ассоциации нескольких объектов, типы которых определялись бы из позиции в полученном кортеже;
- Кортеж должен быть неограниченным по длине и типу;
- Типы элементов должны быть относительно контролируемым (как минимум ограничен дженериками);
- Описание структуры кортежа должно быть простым;