Cita: lo que hace es transformar a String el valor que devuelve la función
criteriosBusqueda.get("NOMBRE")
por ejemplo si la función devuelve un 1, (String) lo transforma a "1"
Cita: Tranquilamente puede convertirse en
String nombre = criteriosBusqueda.get("NOMBRE");
O sea, el casteo para mi no hace nada, mas que dificultar la lectura y seguro que trabajo al pedo.
No y no

.
Primero: El cast no transforma nada. Si criteriosBusqueda.get("NOMBRE") devuelve un numero, 1, el cast no lo transformará en una cadena, "1", si no que saltará un error ->
que es lo que debe ocurrir.
Segundo: El cast es necesario y hacer un toString() es un error por que el cast
debe dar un error si lo que te devuelve el get no es un String. Si no, lo unico que estas haciendo es enmascarar un error de tu programa, cosa que nunca se debe hacer por que si no, puede que nunca descubras que existe.
El cast es una declaración tuya al compilador para decirle "se lo que va a devolver ese metodo y es esto", para que el compilador te deje usar el valor devuelto como de la clase que tu le has asegurado que va a a ser. Si el metodo no devuelve eso, y debería, es que tu programa está mal y debes corregirlo.
El cast no es para dificultar la lectura, es una declaración de intenciones de que sabes exactamente lo que estas haciendo para que el compilador te deje trabajar asumiendo "riesgos".
S!