Ir ao conteúdo
  • Cadastre-se

Java Erros na compilação de um código JAVA - Exception in thread “main” java.lang.NoS


Posts recomendados

Olá, estou desenvolvendo um código que simula o sistema de um cinema, bem simples. Bom, mais cedo tive um problema com estouro de pilha, já solucionado. No momento, estou trabalhando na parte em que o cliente informa sua idade e ela é comparada a classificação indicativa do filme. Se for acima da classificação ele segue, se não ele recebe um aviso. Porém, consegui aplicar para o filme do Homem Aranha inicialmente, ainda estava fazendo os testes, e funcionou! Ai resolvi aplicar para todos os outros filmes do programa, “Casa Gucci” e “Eternos”, porém agora, quando vou fazer a comparação da idade, quando escolhe uma sala no Homem Aranha, ocorre este erro abaixo:

 

Exception in thread "main" java.lang.NoSuchMethodError: VerificarIdade.verIdade()V

at Filme.impHaranha(Filme.java:45)

at Sessoes.impEscolha(Sessoes.java:47)

at ShowTime.main(ShowTime.java:31)

 

 

E quando eu coloco outro filme, por exemplo o “Eternos”, ai escolho sua sala, ele simplesmente não me leva para a parte de verificar a idade, a mesma que da erro na do “Homem Aranha”, ele simplesmente fica me voltando na escolha das salas infinitamente, a mesma coisa ocorre com o filme da “Casa Gucci”

Queria saber a solução do problema e talvez possíveis dicas de melhorar meu código, vou postar as 3 classes envolvidas no erro abaixo, valeu!:

 

 

Classe Filme:

public class Filme {

private String nomeFilme = "";
private int classificacao = 0;
private int horario = 0;

Entrada entrada = new Entrada();
VerificarIdade vI = new VerificarIdade();



//========================================================

//=========================================================
//POLIMORFISMO

public void impHaranha(){
System.out.println("\n\n\nINFORMACOES SOBRE HOMEM ARANHA 3!!!");
System.out.println("HOMEM ARANHA 3\nClassificacao Indicativa: 12 anos\nGenero: Acao e Aventura\n\n");

boolean vai = true;
int op = 0;

while(vai){

System.out.println("\n\n\nEscolha um horario e sala");
System.out.println("1) Sala 1 - 14hrs");
System.out.println("2) Sala 1 - 19hrs");
System.out.println("3) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nESCOLHA UMA OPCAO ACIMA:\n"));
}

catch(NumberFormatException nfe){
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}

switch(op){

               case 1: 
               System.out.println("\n1) Horario 1\n\n");
               vI.verIdadeHA3();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeHA3();
               break;

               case 3:
               String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
               if(resp.equalsIgnoreCase("s")){
               System.exit(0);
               }
               break;

               default:
               entrada.entDados("\nA opcao deve estar entre 1 e 3");
               break;

               }

       }//fim do while


}

//==============================================================================================================
//POLIMORFISMO

public void impCasaGucci(){
System.out.println("\n\n\nINFORMACOES SOBRE CASA GUCCI!!!");
System.out.println("CASA GUCCI\nClassificacao Indicativa: 14 anos\nGenero: Drama\n");

boolean vai = true;
int op = 0;

while(vai){

System.out.println("\n\n\nEscolha um horario e sala");
System.out.println("1) Sala 2 - 14hrs");
System.out.println("2) Sala 2 - 19hrs");
System.out.println("3) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nESCOLHA UMA OPCAO ACIMA:\n"));
}

catch(NumberFormatException nfe){
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}

switch(op){

               case 1: 
               System.out.println("\n1) Horario 1\n\n");
               vI.verIdadeGUCCI();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeGUCCI();
               break;

               case 3:
               String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
               if(resp.equalsIgnoreCase("s")){
               System.exit(0);
               }
               break;

               default:
               entrada.entDados("\nA opcao deve estar entre 1 e 3");
               break;

               }

       }//fim do while


}

//===================================================================================================
//POLIMORFISMO

public void impEternos(){
System.out.println("\n\n\nINFORMACOES SOBRE ETERNOS!!!");
System.out.println("ETERNOS\nClassificacao Indicativa: 14 anos\nGenero: Acao, Epico\n");

boolean vai = true;
int op = 0;

while(vai){

System.out.println("\n\n\nEscolha um horario e sala");
System.out.println("1) Sala 3 - 14hrs");
System.out.println("2) Sala 3 - 19hrs");
System.out.println("3) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nESCOLHA UMA OPCAO ACIMA:\n"));
}

catch(NumberFormatException nfe){
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}

switch(op){

               case 1: 
               System.out.println("\n1) Horario 1\n\n");
               vI.verIdadeETERNOS();
               break;

               case 2:
               System.out.println("\n2) Horario 2\n\n");
               vI.verIdadeETERNOS();
               break;

               case 3:
               String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
               if(resp.equalsIgnoreCase("s")){
               System.exit(0);
               }
               break;

               default:
               entrada.entDados("\nA opcao deve estar entre 1 e 3");
               break;

               }

       }//fim do while


}
}

 

Classe VerificarIdade:

public void verIdadeHA3(){

int id = 0;
id = Integer.parseInt(entrada.entDados("\n\nInforme sua idade:"));

if(id < 12){
System.out.println("\nACESSO AO FILME NÃO LIBERADO!!!\n");
}else{
System.out.println("\nACESSO AO FILME LIBERADO!!!\n");
}        
}

//=====================================================

public void verIdadeGUCCI(){
int id = 0;
id = Integer.parseInt(entrada.entDados("\n\nInforme sua idade:"));

if(id < 14){
System.out.println("\nACESSO AO FILME NÃO LIBERADO!!!\n");
}else{
System.out.println("\nACESSO AO FILME LIBERADO!!!\n");
}        
}

//=====================================================

public void verIdadeETERNOS(){
int id = 0;
id = Integer.parseInt(entrada.entDados("\n\nInforme sua idade:"));

if(id < 14){
System.out.println("\nACESSO AO FILME NÃO LIBERADO!!!\n");
}else{
System.out.println("\nACESSO AO FILME LIBERADO!!!\n");
}        
}

//=====================================================

}

 

Classe ShowTime:

public class ShowTime extends Cliente {

public static void main(String arg[]){

Cliente c1 = new Cliente();
Entrada entrada = new Entrada();
Sessoes s1 = new Sessoes();
VerificarIdade vI = new VerificarIdade(); 


//=================================================================

c1.setNome(entrada.entDados("Nome: "));
c1.setTelefone(Integer.parseInt(entrada.entDados("Telefone: ")));


System.out.println("\n\n>>>>>> informações PESSOAIS <<<<<<");
System.out.println("Nome: " + c1.getNome());
System.out.println("Telefone: " + c1.getTelefone());


//============================================================

c1.impInicio();
s1.impEscolha();
vI.verIdadeHA3();
vI.verIdadeGUCCI();
vI.verIdadeETERNOS();

//======================================================

}
}

 

Link para o comentário
Compartilhar em outros sites

Olá.

 

Fui ver melhor o código que você postou aqui e deu que a linha 45 é uma linha em branco. Por acaso esse código que você colocou aqui foi realmente o código que deu o erro que retornou para ti?

 

E outra. Esse NoSuchMethodError é lançado quando você faz uma chamada a um método que não existe na classe. Esse método verIdade() realmente existe? E se existe, ele realmente é chamado, pois eu não vi chamada dele nos códigos que você colocou aqui.

Link para o comentário
Compartilhar em outros sites

Bom a classe filme, que é do erro 45 eu coloquei, mas notei que a do erro 47 não coloquei, que é a classe Sessões, vou deixa-la aqui abaixo. 

Já sobre o verIdade, eu também estou achando muito estranho, pois em nenhum momento eu usei ele. Existe os outros, como verIdadeHA3() e verIdadeETERNOS() por exemplo, mas este que foi acusado não existe kkk.

 

 

Classe Sessões:

public class Sessoes {

private String nomeFilmes = "";
private String horarios = "";
private int sala = 0;

Entrada entrada = new Entrada();

Filme filme = new Filme();
VerificarIdade vI = new VerificarIdade();






//=============================================
//POLIMORFISMO

public void impEscolha(){

boolean vai = true;
int op = 0;


while(vai){
System.out.println("\n\n\n1) >>>>>> FILME <<<<<<");
System.out.println("1) Homem Aranha 3");
System.out.println("2) Casa Gucci");
System.out.println("3) Eternos");
System.out.println("4) Sair");
try{
op = Integer.parseInt(entrada.entDados("\nESCOLHA UM FILME ACIMA:\n\n"));
}

catch(NumberFormatException nfe){
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}

switch(op){

               case 1: 
               System.out.println("\n1) Homem Aranha 3");
               filme.impHaranha();
               break;


               case 2:
               System.out.println("\n2) Casa Gucci");
               filme.impCasaGucci();
               break;


               case 3:
               System.out.println("\n3) Eternos");
               filme.impEternos();
               break;


               case 4:
               String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
               if(resp.equalsIgnoreCase("s")){
               System.exit(0);
               }
               break;


               default:
               entrada.entDados("\nA opcao deve estar entre 1 e 4");
               break;

               }

       }//fim do while




}



}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!