Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Uso de OptionalDouble.of(Double.valueOf(datosSerie.evaluacion())).orElse(0);

Creo que ahí igual dará una excepción NumberFormatException si es un texto como N/A.

Y si no, no entiendo como funciona.

¿A alguien más le paso?

1 respuesta

Hola Johan, espero que estés bien

Entiendo tu preocupación con respecto al uso de OptionalDouble.of(Double.valueOf(datosSerie.evaluacion())).orElse(0);. La línea de código que mencionas está diseñada para intentar convertir un valor de tipo String a un Double.

Si la conversión no es posible (por ejemplo, si el valor es "N/A" o cualquier otro texto que no represente un número), se lanzaría una excepción NumberFormatException. Sin embargo, el método orElse(0) se utiliza para proporcionar un valor predeterminado en caso de que la conversión falle.

Aquí está cómo funciona:

  1. Double.valueOf(datosSerie.evaluacion()) intenta convertir el valor de datosSerie.evaluacion() a un Double.
  2. Si datosSerie.evaluacion() es un valor numérico válido, OptionalDouble.of() lo envolverá en un OptionalDouble.
  3. Si la conversión falla (por ejemplo, si el valor es "N/A"), NumberFormatException se lanzaría, pero debido al uso de OptionalDouble, el flujo de control pasa al orElse(0), que proporciona un valor predeterminado de 0.

Por lo tanto, si datosSerie.evaluacion() no es un número válido, el código no lanzará una excepción, sino que simplemente usará 0 como valor predeterminado.

Espero que esta explicación aclare tus dudas sobre cómo funciona este fragmento de código. ¡Espero haber ayudado y buenos estudios!