Bien, en esta clase vamos a solucionar algunos problemas que podríamos tener algunos errores, por
ejemplo, si ejecutamos ejemplo.
TOMÓVIL Bueno, recuerden que este primer ejemplo no tiene el tipo automóvil.
Por ejemplo, si es camioneta, si es esté hecho, empañen.
En fin, no tiene.
Entonces debería dar un error.
Por ejemplo, si levantamos.
Se fijan un nul point 3 con el típico error de yaba cuando un objeto es nulo y trata de invocar un método.
Pero dónde ocurre?
Bueno, veamos.
Línea 150 en la clase automóvil.
Bueno, sin duda es en ver detalles por acá.
150 tipo, claro, porque de tipo en nul, en ejemplo tomóvil y tratar de invocar get descripción da
el error, por supuesto.
Entonces hay soluciones diferentes.
Por ejemplo, podríamos asignar en el ejemplo tomóvil por acá el tipo tal como lo tenemos acá se tipo
se fijan hatchback vicap.
En fin.
Y también lo tenemos acá.
Entonces acá y acá no da error.
Pero en automóvil, como no lo tenemos en nulo, da el error.
Entonces lo podríamos signar o lo podría dejar tal cual si el tipo automóvil y lo pudiera manejar acá
con un if, por ejemplo, preguntarse nulo.
Bueno, como en vez de retornar acá, simplemente lo asignamos a una variable string detalle perfecto.
Y acá retornamos el detalle.
Bien, pero entonces esto nos permite, por ejemplo, colocar un punto y coma acá.
Listo, finaliza ese string y acá.
Bueno, lo podríamos concatenar, por ejemplo, detalle más igual.
Recuerden que para abreviar y concatenar y acá punto y coma.
Y lo que sigue igual detalle más igual se fijan estamos concatenar.
Pero esta concatenación depende.
Acá podríamos tener un if preguntamos si tipo lo de copiar if si gue tipo distinto de null lo incluimos
se fijan y si no bueno nos incluya.
De esa forma ahorramos el error.
Vamos a probar.
Vamos a levantar y ver como queda.
Nos vamos a ejemplo automóvil, que justamente ocurre el error ahora no debería, se lo debería saltar,
se fijan y en detalle.
Bueno, por supuesto que no muestra el tipo muestra Leidy, bueno, fabricante, modelo, color, pero
el tipo no se muestra porque nulo de esa forma lo tenemos solucionado.
Entonces, utilizando IFF bien, qué otro error podría ocurrir?
Bien, en ejemplo Static acá, acá tenemos Subaru con el estanque, pero Mazda en la clase anterior
no le puse el estanque.
Sin embargo, le puse motor a Mazda, pero no le estanque a Nisan.
Le puse el motor, el estanque, así que ningún problema.
Ni Sandoz también.
Pero qué pasa si en Mazda ya que no tienes tanque?
Por lo tanto la capacidad del estanque no la tiene.
Y recordemos que cuando calculamos por acá el consumo calcula el consumo acá o acá requiere una instancia
del estanque.
Pero hacen nula null.
Va a lanzar el mismo error null po interceptor.
Veamos, vamos acá.
Por ejemplo, tratemos acá al final.
Recuerden en Mazda Shout Mazda punto calcular consumo 300 kilómetro, por ejemplo.
Bueno, y gasta el 70 70 por ciento.
Recuerden que tenemos esa forma, pero da lo mismo en cualquiera de los dos método va a dar el mismo
error.
Vamos a ejecutar.
Se fijan null pointer hecho automóvil, yaba €180.
Veamos.
Hacemos un clic.
Línea 180 acá.
El estanque nulo porque no lo hemos asignado, se fijan, bueno, en este caso lo tenemos que asignar
porque si vamos a utilizar calcula el consumo, necesitamos la instancia del estanque, pero también
hay diferentes soluciones.
Bueno, lo correcto, lo típico es ir acá, acá arriba, por ejemplo, Magda Punto Set estanque.
New El estanque?
No sé.
Lo dejamos por defecto o con algún valor 50, por ejemplo.
Da lo mismo.
Ahora, si levantamos está todo perfecto.
Y acá muestra consumo, se fijan.
Bien, pero otra solución lo voy a comentar.
Por lo tanto, si levantamos, obviamente da el error, pero otra solución es utilizar el método GET,
por ejemplo.
Entonces acá en vez de usar el estanque a secas, usamos el geet estanque.
Llega también acá no, porque esto es el contexto estático, es otro tema aparte.
Acá cuando es parte de la instancia, ven, vámonos.
Algete Control Click Litton Acá tenemos bien un patrón diseño simple que en realidad bien simple es
preguntar antes de retornar al estanque.
Si el nulo if
si es nulo.
Perfecto.
Estanque.
Es igual.
Y le damos un valor por defecto, pero se lo damos en el yeta.
En caso de que sea nulo.
Entonces el momento de retornar del estanque.
Preguntamos si es nulo.
Y esto se aplica a cualquier objeto.
También puede ser a motor.
En fin.
Pero el motor un poco más complicado porque el motor es muy particular para cada instancia.
Entonces ahí es mucho mejor que la ascendemos.
El motor sí o sí.
Y si no, que lance el error de Mull un pulpo.
Ya que requisito.
Pero en el caso del estanque podríamos tener uno por defecto new estanquen.
Y recuerden que el estanque por capacidad, es decir, por defecto la capacidad 40.
Así que está bien.
Acá le asigna la capacidad.
Entonces ahora debería funcionar bien, ya que si bien acá tenemos comentado en Static, perdón por
acá.
En Static Acá.
Lo tenemos comentado, pero en automóvil, en el Gillet se lo asignamos en caso que se anule.
Entonces vamos a probar.
Funciona, se fija porque asigna por defecto.
A pesar de que acá no?
Pero acá la tenemos.
Se fijan.
Son distintas soluciones para evitar de repente lo null pointer, excepto si nos vamos a guet detalle.
Acá bueno, el Heidy fabricante, modelo, no hay ningún problema.
Acá puede problema se fijan en la cilindrada, también podría haber problema en caso de que nos demos
el motor.
Entonces también podríamos validar acá en caso de que pudiera ocurrir algún error.
En caso de que nos sintamos un motor, aunque debiera ser obligación asignar el motor.
Pero bien, también se puede aliar igual que el tipo.
Entonces, por ejemplo, acá cerramos punto y coma.
Acá, como siempre, detalla más igual.
Pero con un if con quetenemos, siempre y cuando exista motor, se disc motor o dis guet motor, da
lo mismo.
Entonces, si es distinto, nul perfecto.
Bueno, prefiero usar la llave, recuerden.
Pero si es una sola línea como esta, puedo omitir la llave.
Pero bueno, queda mejor así y listo.
Ahí queda mejor, incluso más seguro para el motor y listo.
Bueno, eso quería explicar el tema de error, sobretodo este error típico de Yaba que lo vamos a encontrar
muchas veces.
El famoso NULL Pointer Exception cuando una referencia es nula y tratamos de invocar algún método,
lo tratamos de utilizar, pero como no tiene referencia da este error.
Continuamos en la siguiente clase.