Archivo de la categoría: Cleancode

MapUtils de Apache Commons

Muchas veces nos toca obtener valores de una map por diversos motivos que no son objetivo de esta entrada, pero lo que si es cierto, que la lectura de estos datos pueden generar piezas de código complejas que se repiten por toda la aplicación como por ejemplo:

...
Object obj = map.get("key");
String keyValue = "default-value";
if(obj != null){
    keyValue = (String) obj;
}
...
...
String keyValue = (String) map.get("key");
if(keyValue == null){
    keyValue = "default-value";
}
...

pero con MapsUtils, podemos resumir todo ese código en:

...
String keyValue = MapUtils.getString(map, "key", "default-value");
...

corto, sencillo, sin repetir mucho código, menos código que probar ademas.

Entro otros métodos tenemos:

  • MapUtils.getBoolean();
  • MapUtils.getDouble();
  • MapUtils.getInteger();
  • MapUtils.isEmpty();

Anexo enlace a la librería: MapUtils de Apache Commons


Manejo de conversión de números en java – Apache Commons NumberUtils

Para retomar el blog, luego de varios de años, quería compartir un poco de mi aventura con java, iniciamos con la librería Apache Commons NumberUtils.

Muchas veces en nuestros proyectos nos encontramos con código de este estilo:

String tienda_id = "25";
Integer tiendaId = Integer.parseInt(tienda_id);

para el escenario anterior esta bien, no tendremos problemas, pero que pasa cuando tenemos un escenario como este:

String tienda_id = "25";
Integer tiendaId = Integer.parseInt(tienda_id);

tendríamos que manejar la excepción, con un código similar a este:

Integer tiendaId = null;
try {
    tiendaId = Integer.parseInt(tienda_id); //lanzará una excepción
} catch (NumberFormatException nfe) {
    tiendaId = 0;
}

imaginate que debes hacer esto en muchas partes de tu aplicación, te enfrentarias al escenario de tener código duplicado o de crear un método con propio que debes  mantener, hacer pruebas, etc, etc.

Pero con Apache Commons NumberUtils, esto esta solucionado, solo tienes que importar la librería (con maven o gradle o lo que uses) y al final se vería un código como este:

// en este caso devuelve default=0
Integer prodId = NumberUtils.toInt(tienda_id);
// si queremos devolver 25 o x
Integer prodId = NumberUtils.toInt(tienda_id, 25);

la librería ofrece otros métodos como:

  • toDouble
  • toFloat
  • toLong
  • muchos mas

solo te queda revisarla

referencias: Apache Commons NumberUtils