Ao fazer a depuração do código percebi esse erro aparecendo em minha classe:
!IImagem: (https://cdn1.gnarususercontent.com.br/1/894810/804be6a7-1dda-4e62-a133-0e5d7bddf326.png)
Segue a classe AcervoDeLivros onde instânciei os atributos e metodos para inserir os livros:
public class AcervoDeLivros {
private String titulo;
private String autor;
private double preco;
private int quantidadeEstoque;
public AcervoDeLivros(String titulo, String autor, double preco, int quantidadeEstoque)
throws NullPointerException {
this.titulo = titulo;
this.autor = autor;
this.preco = preco;
this.quantidadeEstoque = quantidadeEstoque;
}
public AcervoDeLivros() {
}
public String getTitulo() {
return titulo;
}
public String getAutor() {
return autor;
}
public double getPreco() {
return preco;
}
public int getQuantidadeEstoque() {
return quantidadeEstoque;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((autor == null) ? 0 : autor.hashCode());
long temp;
temp = Double.doubleToLongBits(preco);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + quantidadeEstoque;
result = prime * result + ((titulo == null) ? 0 : titulo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AcervoDeLivros other = (AcervoDeLivros) obj;
if (autor == null) {
if (other.autor != null)
return false;
} else if (!autor.equals(other.autor))
return false;
if (Double.doubleToLongBits(preco) != Double.doubleToLongBits(other.preco))
return false;
if (quantidadeEstoque != other.quantidadeEstoque)
return false;
if (titulo == null) {
if (other.titulo != null)
return false;
} else if (!titulo.equals(other.titulo))
return false;
return true;
}
@Override
public String toString() {
return "[Titulo: " + this.titulo + " -" + " Autor: " + this.autor + "]" + "\n";
}
}
A classe LojaOnline onde estou construindo a parte principal do projeto:
public class LojaOnline {
private String nomeDaLoja;
private Collection<AcervoDeLivros> livro = new ArrayList<AcervoDeLivros>();
public LojaOnline(String nomeDaLoja) throws NullPointerException {
this.nomeDaLoja = nomeDaLoja;
}
public Collection<AcervoDeLivros> getLivro() {
return livro;
}
public void AdicionarLivro(AcervoDeLivros livro) {
this.livro.add(livro);
}
public void RemoveLivro(AcervoDeLivros livro) {
this.livro.remove(livro);
}
public String getNomeDaLoja() {
return nomeDaLoja;
}
}
A classe main onde estou fazendo os testes:
public class TesteGoldenHall {
public static void main(String[] args) {
LojaOnline loja = new LojaOnline("Golden Hall");
loja.AdicionarLivro(new AcervoDeLivros("O Senhor dos Anéis: A Sociedade do Anel", "J.R.R Tolkien", 69.90, 200));
loja.AdicionarLivro(new AcervoDeLivros("O Senhor dos Anéis: As duas torres", "J.R.R Tolkien", 69.90, 200));
loja.AdicionarLivro(new AcervoDeLivros("O Senhor dos Anéis: O retorno do rei", "J.R.R Tolkien", 69.90, 200));
loja.AdicionarLivro(new AcervoDeLivros("O Hobbit", "J.R.R Tolkien", 49.90, 150));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 1", "Frank Herbert", 60.83, 70));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 2", "Frank Herbert", 60.83, 70));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 3", "Frank Herbert", 60.83, 70));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 4", "Frank Herbert", 60.83, 70));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 5", "Frank Herbert", 60.83, 70));
loja.AdicionarLivro(new AcervoDeLivros("Duna: livro 6", "Frank Herbert", 60.83, 70));
System.out.println(loja.getLivro());
}
}
Ao fazer a depuração para entender melhor o funcionamento do meu código percebi este erro, alguem sabe dizer porque isso acontece? o código compila sem problemas, só fiquei curioso e gostaria de uma solução. Creio que ao aumentar a complexidade do código ou tentar fazer um projeto maior partindo deste começo esse erro que agora pode passar desapercebido poderá gerar uma dor de cabeça, desde já agradeço.