Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] Exception in thread "main" java.lang.ClassCastException

Hola estoy haciendo el ejercicio del video sin embargo cuando lo quiero correr me da otra excepción : Exception in thread "main" java.lang.ClassCastException creo que tengo toda la clase igual ¡¡

package com.byteBankTest;

import com.byteBank.modelo.Cuenta;
import com.byteBank.modelo.CuentaAhorros;
import com.byteBank.modelo.CuentaCorriente;

public class TestArregloReferencias {
    
    public static void main(String[] args) {
        
        CuentaCorriente cc = new CuentaCorriente(23, 44);
        
        
        //                          [ new |cc |null  |null  |null  ]
        Cuenta[] cuentas = new Cuenta[5];
        cuentas[1] = cc;
        
        CuentaAhorros ca = new CuentaAhorros(44, 55);
        cuentas[1]=ca;
        
        System.out.println(cc);
        System.out.println(cuentas[1]);
        
        cuentas[0] = new CuentaCorriente(11, 99);
        System.out.println(cuentas[0]);
        
        CuentaCorriente cuenta = (CuentaCorriente)cuentas[1];
        System.out.println(cuenta);
        
        for (int i = 0; i < cuentas.length; i++) {
            System.out.println(cuentas[i]);
        }
        
        
    }

}
1 respuesta
solución!

Hola Mario, espero que estés bien.

Esto error generalmente ocurre cuando se está intentando hacer un casting entre dos clases que no están relacionadas o que no son subclases una de la otra. El mensaje de error "Exception in thread 'main' java.lang.ClassCastException" indica que el error ocurrió en el método "main" cuando se intenta convertir un objeto a un tipo incompatible. Comprueba las conversiones que estás realizando sean válidas y que las clases estén relacionadas correctamente.

CuentaCorriente cuenta = (CuentaCorriente)cuentas[1]; estás haciendo un casting redundante, ya que cuentas[1] ya contiene una referencia a un objeto de tipo CuentaCorriente.

Recuerda que si tienes alguna duda sobre el contenido, estaremos aquí para ayudarte.

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