Olá a todos estou com um trabalho da universidade e estou com umas duvidas quanto a implementação. O problema é que quando vou inserir um Objeto ele aponta um java.lang.NullPointerException.
Classe MyCozyLibrary
public class MyCozyLibrary implements SmallLibrary {
private Collection allBooks;
public MyCozyLibrary() {
/* COMPLETE */
}
/* COMPLETE */
// inner comparator class.
private class ByYearComparator implements Comparator {
public int compare(Object arg0, Object arg1) {
Book book1, book2;
book1 = (Book) arg0;
book2 = (Book) arg1;
if (book1.getYear() < book2.getYear()) {
return -1;
} else if (book1.getYear() > book2.getYear()) {
return 1;
} else {
return 0;
}
}
}
Este construtor não entendi o que o professor quer que faça, a classe ByYearComparator eu implementei como esta a cima ela vinha assim antes:
private class ByYearComparator implements Comparator {
public int compare(Object arg0, Object arg1) {
Book book1, book2;
book1 = (Book) arg0;
book2 = (Book) arg1;
}
}
Agora vem o problema, eu tento adicionar um objeto não consigo.
@Override
public void addBook(Book book) throws UnexpectedDuplicateException {
/*
* Adds the given book to the library - UnexpectedDuplicateException if the
* library already contains a book equal to the argument
*/
if (allBooks != null) {
for (Object books : allBooks.toArray()) {
if (books == book) {
throw new UnexpectedDuplicateException("Livro ya existe!");
}
}
allBooks.add(book);
} else {
System.out.println("Sou um livro: " + book);
allBooks.add(book);
}
}
Os valores que chegam na referencia saem normal se coloco uma saída:
--->INICI: test 02 de MyCozyLibrary
>> PROVA: implement biblioteca...
Sou um livro: [AAAK-23-ZZ]-(2000)-A VECTOR WITH TWO ARRAYS
ERROR: EXCEPCION inesperada
java.lang.NullPointerException
java.lang.NullPointerException
at pr1.MyCozyLibrary.addBook(MyCozyLibrary.java:53) // esta e exatamente a linha allBooks.add(book);
at pr1.Test02.main(Test02.java:87)