2
respuestas

Duda con la expresion "::"

No comprendo la función de la siguiente linea de código en la clase para manejar errores. pero particularmente con la expresión "::"

Espero puedan explicarme, muchas gracias de antemano!

    return ResponseEntity.badRequest().body(errores.stream().map(DatosErrorValidacion::new).toList());
2 respuestas

¡Hola Gerardo, espero que estés bien!

La expresión "::" en Java se utiliza para hacer referencia a un método o constructor de una clase. En este caso, se está utilizando para crear una instancia de la clase "DatosErrorValidacion" a partir de un objeto de tipo "Stream" que contiene los errores de validación.

La línea de código que mencionas utiliza el método "map" de la clase "Stream" para transformar cada objeto de tipo "Error" en un objeto de tipo "DatosErrorValidacion" utilizando la referencia al constructor de la clase "DatosErrorValidacion" con la expresión "::new".

En resumen, esta línea de código está creando una lista de objetos "DatosErrorValidacion" a partir de una lista de objetos "Error" utilizando el método "map" y la expresión "::new".

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Hola Gerardo, un gusto saludarte.

Sabes que para entenderlo un poco mejor, te muestro el ejemplo de como es de manera tradicional, sin la expresión de los dos puntos (::).

 return ResponseEntity.badRequest().body(errores.stream().map(error -> new DatosErrorValidacion(error)).toList());

Como puedes notar debido a que es una expresión lambda, con la expresión :: puedes utilizarla, siempre y cuando no tengas una lógica especial, ahí mismo en el método map.

La expresión (::) va a expresar de una manera más simplificado lo que quieres mostrar.