1
resposta

Percebi um erro ao fazer a depuração do código

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.

1 resposta

Noite... Beleza Diego, não é um erro de código como podemos ver: https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#toArray-- (o método é definido sim para Colletion). E sim um erro do debug da versão desse eclipse, tenta fazer um upgrade da IDE ou utilizar o intelliJ (o mercado hoje em dia trabalha mais com essa IDE :) )