Pessoal estou problemas num ArrayList, já olhei o código várias vezes e não consegui ver o problema.
Se alguem puder ajudar agradeço, o problema deve estar saltando aos olhos eu sei, mas não consigo enxergar :roll: .
Essa é a minha classe TO.
[code]public class AlunoTO {
private String matricula;
private String nome;
private Date dataNascimento;
private ArrayList notas;
/**
* @return the dataNascimento
/
public Date getDataNascimento() {
return dataNascimento;
}
/*
* @param dataNascimento the dataNascimento to set
/
public void setDataNascimento(Date dataNascimento) {
this.dataNascimento = dataNascimento;
}
/*
* @return the matricula
/
public String getMatricula() {
return matricula;
}
/*
* @param matricula the matricula to set
/
public void setMatricula(String matricula) {
this.matricula = matricula;
}
/*
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
*
* @param nota
*/
public void addNota(Float nota){
this.notas.add(nota);
}
}
[/code]
Essa é a minha classe View (Onde eu passo os parametros/Dados)
[code]public class View {
private Controller controller;
private Scanner input;
/*
* metodo construtor da class view recebe como parametro uma instancia da classe controller.
* É o primero a ser executado quando
* instanciamos a classe View.
*/
public View(Controller controller){
this.controller = controller;
input = new Scanner(System.in);
}
public void showMenu(){
// opcoes do menu
System.out.println("\n\n");
System.out.println("Sistema de Cadastro de Alunos");
System.out.println("1 - Cadastrar Alunos");
System.out.println("2 - Listar Alunos");
System.out.println("3 - Sair");
System.out.print("Informe sua opção");
int opcao = input.nextInt();
switch (opcao) {
case 1:
pegarDadosDoAluno();
case 2:
listarAlunos();
break;
default:
sairDaAplicacao();
break;
}
}
/**
*
* metodo para finalizar o sistema
*/
private void sairDaAplicacao() {
System.out.println("Fim da Aplicação");
System.exit(0);
}
public void pegarDadosDoAluno(){
AlunoTO aluno = new AlunoTO();
System.out.println("\n\n");
System.out.println("------Cadastro de Aluno-----");
System.out.print("Matrícula:");
aluno.setMatricula(input.next()+input.nextLine());
System.out.print("Nome:");
aluno.setNome(input.next()+input.nextLine());
System.out.print("Nota do B1:");
aluno.addNota(input.nextFloat());
System.out.print("Nota do B2:");
aluno.addNota(input.nextFloat());
System.out.print("Nota do B3:");
aluno.addNota(input.nextFloat());
System.out.print("Nota do B4:");
aluno.addNota(input.nextFloat());
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");
System.out.print("Data de Nascimento (DD/MM/AAAA): ");
String dtNascimento = input.next()+input.nextLine();
boolean dtNascIsNotOk = true;
do{
try {
aluno.setDataNascimento(f.parse(dtNascimento));
dtNascIsNotOk = false;
} catch (ParseException e) {
System.out.println("Data incorreta!");
System.out.println("Informe Novamente (DD/MM/AAAA)");
dtNascimento = input.next()+input.nextLine();
}
}while(dtNascIsNotOk);
// Envia o objeto aluno para o controller.
controller.cadastrarAluno(aluno);
// Chama o menu novamente.
showMenu();
}[/code]
// Metodo para listar os alunos Cadastrados.
[code] public void listarAlunos(){
ArrayList alunos = controller.getListAlunos();
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("\n\n");
System.out.println("--- Lista de Alunos ---");
for (AlunoTO aluno : alunos) {
System.out.println("Matricula: " + aluno.getMatricula());
System.out.println("Nome: " + aluno.getNome());
System.out.println("Nasc.: "+ f.format(aluno.getDataNascimento()));
System.out.println("\n");
System.out.println("--------------");
System.out.println("\n");
}
showMenu();
}
}
[/code]
No console quando eu passo um float nele aparece essa mensagem:
Exception in thread “main” java.lang.NullPointerException
at mvc.model.AlunoTO.addNota(AlunoTO.java:56)
at mvc.view.View.pegarDadosDoAluno(View.java:89)
at mvc.view.View.showMenu(View.java:50)
at mvc.controller.Controller.iniApp(Controller.java:42)
at mvc.controller.Runner.main(Runner.java:14)
