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?
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?
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:
Double.valueOf(datosSerie.evaluacion())
intenta convertir el valor de datosSerie.evaluacion()
a un Double
.datosSerie.evaluacion()
es un valor numérico válido, OptionalDouble.of()
lo envolverá en un OptionalDouble
.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!