1
respuesta

duda sobre uso de var en una variable en ves del tipo

que tal buenos días, tengo esta duda, en el tema de tratando errores del api rest creando un trato de error 400 creamos una variable pero se crea con var en ves de usar el tipo de dato, investigue y se que se pueden las dos formas pero cual es la ventaja de usar var en esta exclusivamente

@ExceptionHandler (MethodArgumentNotValidException.class)
    public ResponseEntity tratarError400(MethodArgumentNotValidException e){
        var errores = e.getFieldErrors().stream().map(DatosErrorValidacion::new).toList();
        return ResponseEntity.badRequest().body(errores);
    }

tambien pudiese haber sido

List<DatosErrorValidacion> errores = e.getFieldErrors().stream().map(DatosErrorValidacion::new).toList();
1 respuesta

Hola José,

Tu pregunta es muy interesante y relevante. La palabra clave var se utiliza para la inferencia de tipos en Java, lo que significa que el compilador de Java deduce el tipo de la variable del contexto. Esto puede hacer que tu código sea más limpio y menos redundante.

En tu caso, en lugar de escribir List<DatosErrorValidacion>, simplemente has escrito var. El compilador de Java sabe que errores es una lista de DatosErrorValidacion porque está asignado a e.getFieldErrors().stream().map(DatosErrorValidacion::new).toList(); que devuelve una lista de DatosErrorValidacion.

La ventaja de usar var en este caso es que hace que tu código sea más conciso y fácil de leer. Sin embargo, hay que tener en cuenta que el uso de var puede hacer que el código sea menos explícito en algunos casos, lo que podría dificultar la comprensión del tipo de datos de una variable.

Aquí hay un ejemplo práctico para ilustrar esto:

var lista = new ArrayList<String>();  // Infiere ArrayList<String>
var stream = lista.stream();  // Infiere Stream<String>

En el primer caso, es bastante obvio que lista es un ArrayList<String>. Sin embargo, en el segundo caso, puede que no sea inmediatamente obvio que stream es un Stream<String>, especialmente si no estás familiarizado con las operaciones de Stream en Java.

Por lo tanto, aunque el uso de var puede hacer tu código más limpio y conciso, siempre es importante considerar la legibilidad y la claridad del código.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

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