1
resposta

erro: Type mismatch: cannot convert from String to int

Escrevi meu código, mas fica com a mensagem de erro: "Type mismatch: cannot convert from String to int" na classe principal, quando instancio as variáveis, ano de lançamento, duração do filme, incluído no plano . Tb aparece a mesma mensagem de erro quando chamo o método exibeFichaTécnica. Como resolver isso? Estou usando Eclipse como IDE. Méu código:


public class Filme {

    String nome;
    int anoDeLançamento;
    int duraçãoEmMinutos;
    Boolean incluidoNoPlano;
    double somadasAvaliações;
    int totalDeAvaliações;
    
    
    void exibeFichaTécnica () {
        
        System.out.println("Nome do Filme" + nome);
        System.out.println("Ano de Lançamento" + anoDeLançamento);
        System.out.println("Duração em minutos" + duraçãoEmMinutos);
        System.out.println("Incluído no Plano" + incluidoNoPlano);
        
    }
    
    void avalia(double nota) {
        
        somadasAvaliações += nota;
        totalDeAvaliações++;
    }

    double pegaMedia() {
        
    return   somadasAvaliações/totalDeAvaliações;  
        
        
    }
    
    
}


``

`package aluraJavaBasico;

public class MeuFilme {

    public static void main(String[] args) {
        
        Filme topFilme = new Filme();
        
        topFilme.nome= "Fogo Contra Fogo";
        topFilme.anoDeLançamento= "2012";
        topFilme.duraçãoEmMinutos= "96";
        topFilme.incluidoNoPlano= "true";
        
        topFilme.exibeFichaTécnica();
        topFilme.avalia(9,5);
        topFilme.avalia(7,3);
        topFilme.avalia(6,3);
        
        
        System.out.println("A média das avaliações do filme é " + topFilme.pegaMedia());`
1 resposta

Opa fala Ricardo tudo bem? Seu erro está na hora que vc está atribuindo o valor a sua variavel, quando vc instancia um objeto do tipo filme, ele vai ter seus atributos.

    String nome;
    int anoDeLançamento;
    int duraçãoEmMinutos;
    Boolean incluidoNoPlano;
    double somadasAvaliações;
    int totalDeAvaliações;

depois que vc instanciou o objeto, vc atribui os valores neles fazendo isso.

        topFilme.nome= "Fogo Contra Fogo";
        topFilme.anoDeLançamento= "2012";
        topFilme.duraçãoEmMinutos= "96";
        topFilme.incluidoNoPlano= "true";

repara que no topFilme.anoDeLançamento= "2012" vc está passando 2012 como string usando as aspas duplas "", isso a mesma coisa em topFilme.duraçãoEmMinutos e em seguida vc ta passando o opFilme.incluidoNoPlano= "true" usamaos as aspas duplas apenas em STRING, e como vc viu a variavel anoDeLancamento ela é um int, então a mensagem do erro é que vc ta passando uma String em um campo int, deixe as aspas duplos apenas no nome, que é String que tudo vai acontecer bem kkk.

topFilme.nome= "Fogo Contra Fogo";
        topFilme.anoDeLançamento= 2012;
        topFilme.duraçãoEmMinutos= 96;
        topFilme.incluidoNoPlano= true;