Ola galera, sou novo no forum e no java, gostaria de passar aqui minhas duvidas e erros recentes
do qual eu não estou entendendo o problema.
Segue o Código fonte:
packageLivros;importjava.util.Scanner;publicclassexe{publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);LivrariavetorLivro[]=newLivraria[1];Livrarialivro=newLivraria();for(inti=0;i<vetorLivro.length;++i){livro=newLivraria();System.out.println("Digite o nome do Autor:");livro.setAutor(entrada.next());System.out.println("Qual o numero de paginas:");livro.setNumeroDePaginas(entrada.nextInt());System.out.println("Qual o titulo do livro:");livro.setTitulo(entrada.next());System.out.println("Valor de venda:");livro.setPrecovenda(entrada.nextDouble());System.out.println("Qual a quantidade no estoque:");livro.setQuantestoque(entrada.nextInt());vetorLivro[i]=livro;}System.out.print(livro);}}
Erro mencionado:
[color=red] Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at Livros.Livros.toString(Livros.java:40)
at Livros.Livraria.toString(Livraria.java:33)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at Livros.exe.main(exe.java:33)[/color]
Programa usado "Eclipse".
Total de classes: 2
Class Livro
Class Livraria extends Livro
Alguem pode me falar o que é esse problema, pelo que eu entendi é algo referente ao formato/tipo.
sabendo disso, vc poderia ter postado a classe livros, mas como pelo visto vc nao leu a mensagem, acho que agora vc pode dar uma olhada na classe Livros e ver se resolve o problema, se não conseguir poste a classe e veremos qual é a zica.
Smokerox
Mais eu já visualizei a classe e o metodo toString mais nada identifiquei
Olhe a classe:
packageLivros;publicclassLivrariaextendsLivros{privatedoubleprecovenda;privateintquantestoque;publicLivraria(){// constructor default}publicLivraria(Stringautor,intnumeroDePaginas,Stringtitulo,doubleprecovenda,intquantestoque){super(autor,numeroDePaginas,titulo);this.precovenda=precovenda;this.quantestoque=quantestoque;}publicdoublegetPrecovenda(){returnprecovenda;}publicintgetQuantestoque(){returnquantestoque;}publicvoidsetPrecovenda(doubleprecovenda){this.precovenda=precovenda;}publicvoidsetQuantestoque(intquantestoque){this.quantestoque=quantestoque;}publicStringtoString(){returnString.format("%s\nPreco de Venda: %f\nQuantidade Estoque: %d",super.toString(),getPrecovenda(),getQuantestoque());}}
Classe Livros:
packageLivros;publicclassLivros{privateStringautor;privateintnumeroDePaginas;privateStringtitulo;publicLivros(){// constructor default}publicLivros(Stringautor,intnumeroDePaginas,Stringtitulo){this.autor=autor;this.numeroDePaginas=numeroDePaginas;this.titulo=titulo;}publicStringgetAutor(){returnautor;}publicintgetNumeroDePaginas(){returnnumeroDePaginas;}publicStringgetTitulo(){returntitulo;}publicvoidsetAutor(Stringautor){this.autor=autor;}publicvoidsetNumeroDePaginas(intnumeroDePaginas){this.numeroDePaginas=numeroDePaginas;}publicvoidsetTitulo(Stringtitulo){this.titulo=titulo;}publicStringtoString(){returnString.format("Autor do livros: %s\nTitulo do livro: %s\nNumero de paginas: %d",getAutor(),getNumeroDePaginas(),getTitulo());}}
Smokerox
So acontece esses erros quando meus projetos são com vetores
Alguem pode me dizer o que esta avendo com o código…
B
Bruno_Laturner
Simples, você está misturando entrada.next com entrada.nextInt, usando entradas do teclado. Isso não funciona no Windows devido ao padrão de término de linhas. Não é um bug.
Solução: use somente entrada.next, e converta dos dados para outros tipos com Integer.parseInt e Double.parseDouble
packageLivros;importjava.util.Scanner;publicclassexe{publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);LivrariavetorLivro[]=newLivraria[1];Livrarialivro=newLivraria();for(inti=0;i<vetorLivro.length;++i){livro=newLivraria();System.out.println("Digite o nome do Autor:");livro.setAutor(entrada.next());System.out.println("Qual o numero de paginas:");livro.setNumeroDePaginas(Integer.parseInt(entrada.next()));System.out.println("Qual o titulo do livro:");livro.setTitulo(entrada.next());System.out.println("Valor de venda:");livro.setPrecovenda(Double.parseDouble(entrada.next()));System.out.println("Qual a quantidade no estoque:");livro.setQuantestoque(Integer.parseInt(entrada.next()));vetorLivro[i]=livro;}System.out.print(livro);}}
Erro:
[color=red]Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at Livros.Livros.toString(Livros.java:40)
at Livros.Livraria.toString(Livraria.java:33)
at java.lang.String.valueOf(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at Livros.exe.main(exe.java:33) [/color]
Os valores estão sendo gravados normalemente só que quando vai imprimir no ultimo system.out da esse erro.
Ajuda aew galera.
Smokerox
Ainda não consegui resolver alguem tem uma ideia do que pode ser isso.
edit 20/10
Mal não tinha percebido que postei duas classes iguais.
Pronto agora a classe livro já esta no post anterior.
maschiojv
Fio… o problema é, como eu já disse, na classe Livros. Posta ela ai.