Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] Problema con el cast o casting en pelicula y serie

necesito ayuda al hacer lo de la clase me aparece un error en el public int getValoracion() saliendo lo siguiente 'getValoracion()' in 'cl.pleiades.cursosAlura.screenmatch.modelos.Pelicula' clashes with 'getValoracion()' in 'cl.pleiades.cursosAlura.calculos.Valoracion'; incompatible return type
adjunto mi codigo de la clase valoracion
package cl.pleiades.cursosAlura.calculos;

public interface Valoracion {
double getValoracion ();
}

adjunto codigo de mi clase pelicula
package cl.pleiades.cursosAlura.screenmatch.modelos;

import cl.pleiades.cursosAlura.calculos.Valoracion;

public class Pelicula extends Titulo implements Valoracion {
private String director;

public String getDirector() {
return director;
}

public void setDirector(String director) {
this.director = director;
}

@Override
public int getValoracion(){
return (int) (calculaMedia()/2);
}
}
pero, me inidca en el video que debo hacer un cast o casteo, y con eso soluciono mi problema, pero no es asi.-
en sintesis, que debo hacer para poder solucionar, lo que en el video se me indica.

esto es una duda...

2 respuestas

Hola Alejandro, espero que estés bien

Parece que estás teniendo un problema de incompatibilidad de tipos de retorno entre tu clase Pelicula y la interfaz Valoracion.

En tu caso, la interfaz Valoracion define el método getValoracion() con un tipo de retorno double, mientras que en tu clase Pelicula estás implementando este método con un tipo de retorno int. Esto está causando el conflicto que mencionas.

Para resolver este problema, necesitas asegurarte de que el tipo de retorno del método getValoracion() en tu clase Pelicula coincida con el tipo de retorno definido en la interfaz Valoracion. Aquí tienes un ejemplo de cómo podrías ajustar tu código:

package cl.pleiades.cursosAlura.screenmatch.modelos;

import cl.pleiades.cursosAlura.calculos.Valoracion;

public class Pelicula extends Titulo implements Valoracion {
    private String director;

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    @Override
    public double getValoracion() {
        return calculaMedia() / 2.0; // Asegúrate de que el retorno sea un double
    }
}

En este caso, he cambiado el tipo de retorno del método getValoracion() en la clase Pelicula a double, que coincide con la definición en la interfaz Valoracion. También he ajustado la división para asegurarme de que el resultado sea un double.

Espero que esto te ayude a resolver el problema. ¡Bons estudios!

comorendo lo que me indica y claro, pero lo realice siguiendo el video, no avance al próximo al no encontrar la solución para que no me arrojara el error. Leyendo vi que era un problema de incompatibilidad, pero la instructora en el video indica que la instancia cast me permitía hacer pasar de int a double. Si ve el video en cuestion, podra comprender mi duda. Modificare segun lo indicado por usted, quedando al debe de el porque a la instructora si le resulto y a mi no