Meu código está exatamente igual, mas estava dando o seguinte erro: Thread [main] (Suspended (exception NullPointerException)) Aluno.(String, int) line: 9 TestaBuscaAlunosNoCurso.main(String[]) line: 12
desabilitei a suspensão da exception e deu outro erro: Thread [main] (Suspended) Aluno.(String, int) line: 7 >
Não é a primeira vez que ocorre isso comigo. Ocorreu com outra Exception relacionada a Threads. Qual é a possível causa desses erros?
public class TestaBuscaAlunosNoCurso {
public static void main(String[] args) {
Curso javaColecoes = new Curso("Dominando as coleções do java", "Paulo Silveira");
javaColecoes.adiciona(new Aula("Trabalhando com ArrayList", 21));
javaColecoes.adiciona(new Aula("Criando uma aula", 20));
javaColecoes.adiciona(new Aula("Modelando com coleções", 24));
Aluno a1 = new Aluno ("Rodrigo Turini", 34672);
Aluno a2 = new Aluno ("Guilherme Silveira", 5617);
Aluno a3 = new Aluno ("Mauricio Anichi", 17645);
javaColecoes.matriculaAluno(a1);
javaColecoes.matriculaAluno(a2);
javaColecoes.matriculaAluno(a3);
System.out.println("Quem é o aluno com a matrícula 5617");
Aluno aluno = javaColecoes.buscaPorMatrícula(5617);
System.out.println(aluno);
}
}
public class Aluno {
private String nome;
private int matricula;
public Aluno(String nome, int matricula) {
if(this.nome == null) {
throw new NullPointerException("Nome não pode ser nulo");
}
this.nome = nome;
this.matricula= matricula;
}
public String getNome() {
return nome;
}
public int getMatricula() {
return matricula;
}
@Override
public String toString() {
return "[ Aluno: "+ this.nome + ", matrícula: " + this.matricula + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + matricula;
result = prime * result + ((nome == null) ? 0 : nome.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;
Aluno other = (Aluno) obj;
if (matricula != other.matricula)
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
return true;
}
}
Detalhe: o mesmo erro não acontecia antes de eu criar o TestaBuscaAlunosNoCurso.