javatuples 1.0 liberado
javatuples es una librería Java que da soporte a tuplas. En ocasiones, uno necesita devolver varias cosas desde un método Java (una cadena de caracteres y un entero, por ejemplo). En este momento uno tiene dos opciones: usa una lista, y por lo tanto convierte el método en algo que realmente es no type-safe, o se crea una clase con dos campos: un entero y una cadena de caracteres, y devuelve una instancia de esa clase.
La segunda solución es bastante recurrida. Tanto Netbeans como Eclipse, por ejemplo, tienen dentro de su base de código clases en plan Tupla, para permitir devolver dos cosas desde un método.
javatuples proporciona varias clases genéricas que permiten envolver desde 1 hasta 10 elementos. De este modo, se simplifica la tarea de devolver múltiples cosas desde un método. Las clases que proporciona son:
- Unit<A> (1 element)
- Pair<A,B> (2 elements)
- Triplet<A,B,C> (3 elements)
- Quartet<A,B,C,D> (4 elements)
- Quintet<A,B,C,D,E> (5 elements)
- Sextet<A,B,C,D,E,F> (6 elements)
- Septet<A,B,C,D,E,F,G> (7 elements)
- Octet<A,B,C,D,E,F,G,H> (8 elements)
- Ennead<A,B,C,D,E,F,G,H,I> (9 elements)
- Decade<A,B,C,D,E,F,G,H,I,J> (10 elements)
Todas estas clases son typesafe, inmutables, serializables, interables, e implementan equals() y hashCode() y toString(). Con ellas podríamos definir un método como:
public Triplet getYearMonthDay() {
....
}
y devolver el día, el mes y el año de la fecha. Javatuples se distribuyen bajo licencia Apache.
¿Qué os parece esta librería? ¿El problema que está resolviendo es un problema que habéis encontrado en alguna ocasión?
Reader Comments