Trabe ya no escribe aquí. Puedes encontrarnos en nuestra publicación en Medium: medium.com/trabe.

4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

Op4j: bending the Java Spoon

|

Del creador de Jasypt llega ahora la beta de op4j: una librería pensada para hacer felices a los programadores Java.

It is a Java library aimed at improving quality, semantics, cleanness and readability of Java code, especially auxiliary code like data conversion, structure iteration, filtering, mapping

Básicamente, mediante encadenamiento de métodos podremos realizar las típicas tareas “coñazo” del código Java en una sola línea, con un enfoque más declarativo (qué hacer y no cómo hacerlo).

Se entiende mejor con un ejemplo extraído de la documentación: obtener a partir de una lista de cadenas con fechas en formato “dd/MM/yyyy” un conjuto de objetos Calendar que no incluya ni nulos ni fechas futuras.

Antes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Calendar now = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Set<Calendar> set = new LinkedHashSet<Calendar>();
for (String element : list) {
  if (element != null) {
      try {
          date = dateFormat1.parse(element);
      } catch (ParseException e) {
          throw new SomeException(e);
      }
      Calendar calendar = Calendar.getInstance();
      calendar.setTimeInMillis(date.getTime());
      if (!calendar.after(now)) {
          set.add(calendar);
      }
  }
}

Después

1
2
3
4
Calendar now = Calendar.getInstance();
Set<Calendar> set = Op.on(list).toSet().
    map(FnString.toCalendar("dd/MM/yyyy")).
        removeAllNullOrTrue(FnCalendar.after(now)).get();

No está nada mal. Podéis probarlo y colaborar a su desarrollo ofreciendo feedback a su autor.

Lo sentimos, pero los comentarios están cerrados