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:
[code]
package Livros;
import java.util.Scanner;
public class exe {
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
Livraria vetorLivro[] = new Livraria[1];
Livraria livro = new Livraria();
for(int i = 0; i<vetorLivro.length; ++i){
livro = new Livraria();
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);
}
}[/code]
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.
Olá Smokerox,
já que vc é novo em java… : a mensagem de erro geralmente traz informações sobre o erro!! :shock:
por exemplo…
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) <<<----- aqui diz que o erro passou pela classe Livros, na linha 40 do método toString() 
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)
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.
Mais eu já visualizei a classe e o metodo toString mais nada identifiquei
Olhe a classe:
[code]package Livros;
public class Livraria extends Livros{
private double precovenda;
private int quantestoque;
public Livraria() {
// constructor default
}
public Livraria(String autor, int numeroDePaginas, String titulo, double precovenda, int quantestoque){
super(autor, numeroDePaginas, titulo);
this.precovenda = precovenda;
this.quantestoque = quantestoque;
}
public double getPrecovenda() {
return precovenda;
}
public int getQuantestoque() {
return quantestoque;
}
public void setPrecovenda(double precovenda) {
this.precovenda = precovenda;
}
public void setQuantestoque(int quantestoque) {
this.quantestoque = quantestoque;
}
public String toString() {
return String.format("%s\nPreco de Venda: %f\nQuantidade Estoque: %d",super.toString(),getPrecovenda(),getQuantestoque());
}
}[/code]
Classe Livros:
[code]package Livros;
public class Livros {
private String autor;
private int numeroDePaginas;
private String titulo;
public Livros() {
// constructor default
}
public Livros(String autor, int numeroDePaginas, String titulo)
{
this.autor = autor;
this.numeroDePaginas = numeroDePaginas;
this.titulo = titulo;
}
public String getAutor() {
return autor;
}
public int getNumeroDePaginas() {
return numeroDePaginas;
}
public String getTitulo() {
return titulo;
}
public void setAutor(String autor) {
this.autor = autor;
}
public void setNumeroDePaginas(int numeroDePaginas) {
this.numeroDePaginas = numeroDePaginas;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String toString() {
return String.format("Autor do livros: %s\nTitulo do livro: %s\nNumero de paginas: %d",getAutor(),getNumeroDePaginas(),getTitulo());
}
}[/code]
So acontece esses erros quando meus projetos são com vetores 
Alguem pode me dizer o que esta avendo com o código…
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
E como ficaria amigo…
Seria algo do tipo:
[code]String aux = entrada.next();
…
…
livro.setPrecovenda(Double.parseDouble(aux));[/code]
Outra forma:
[code]package Livros;
import java.util.Scanner;
public class exe {
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
Livraria vetorLivro[] = new Livraria[1];
Livraria livro = new Livraria();
for(int i = 0; i<vetorLivro.length; ++i){
livro = new Livraria();
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);
}
}[/code]
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.
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.
Fio… o problema é, como eu já disse, na classe Livros. Posta ela ai.