Olá amigos, Estou com um problema quando tento add um objeto no meu Arraylist, dá uma execption: "Exception in thread "main" java.lang.NullPointerException"
Nesse programa quero criar um objeto Aluno que tem os atributos nome, idade e peso; e esse objeto vai ser adicionado a um Arraylist turma, e essa lista será gravada em disco. Abaixo segue as 3 classes, e a saida.
Se puderem me ajudar estou meio travado nessa parte.
Obrigado!
Classe Alunopackage academico;
import java.io.Serializable;
/**
*
* @author
*/
public class Aluno implements Serializable{
private int idade;
private double peso;
private String nome;
/** Creates a new instance of Aluno */
Aluno ()
{
}
public String getnome(){
return nome;
}
public int getidade(){
return idade;
}
public double getpeso(){
return peso;
}
public void setNome(String nome)
{
this.nome = nome;
}
public void setIdade(int idade)
{
this.idade = idade;
}
public void setPeso(double peso)
{
this.peso = peso;
}
public String toString() //formato de "saida"/"gravacao"
{
return (this.nome + " / " + "idade: " + this.idade + "\n" + "Peso: " + this.peso);
}
}
package academico;
/**
*
* @author
*/
public class Aplication {
public static void main(String[] args)
{
int opcao;
Interface inf = new Interface();
opcao =inf.mostraMenu();
for(;;)
{
opcao = inf.mostraMenu();
if(opcao==0)
{
inf.agradecimento();
break;
}
switch (opcao)
{
case 1:
inf.CriarAluno();
break;
case 2:
inf.excluirAluno();
break;
case 3:
inf.imprimirAluno();
break;
case 4:
inf.imprimirAlunos();
break;
case 6:
inf.gravaObjeto();
}
}
}
}
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
/**
*
* @author
*/
public class Interface
{
//Interface inf = new Interface();
Scanner teclado=new Scanner(System.in);
ArrayList turma = null;
// Cria o objeto serializado
public void Interface()
{
}
public int mostraMenu()
{
int opcao;
System.out.println("########## MENU Sitema ########## \n");
System.out.println("Digite 0 para sair do Sistema.");
System.out.println("Digite 1 para incluir aluno na turma.");
System.out.println("Digite 2 para excluir aluno na turma.");
System.out.println("Digite 3 para imprimir aluno.");
System.out.println("Digite 4 para imprimir alunos.");
System.out.println("Digite 5 para salvar em arquivo.");
System.out.println("Digite 6 para importar alunos.\n\n########## MENU Sitema ########## \n\nOpção: ");
opcao=teclado.nextInt();
return opcao;
}
public void agradecimento()
{
System.out.println("Obrigado por você usar este sistema!");
}
public Aluno CriarAluno()
{
Aluno aluno = new Aluno();
String tempNome;
int tempIdade;
double tempPeso;
System.out.println("Digite nome do aluno: ");
aluno.setNome(tempNome=teclado.next());
System.out.println("Digite Idade do aluno: ");
aluno.setIdade(tempIdade=teclado.nextInt());
System.out.println("Digite Peso do aluno: ");
aluno.setPeso(tempPeso=teclado.nextDouble());
turma.add(aluno); //erro!!!
return (aluno);
}
public void excluirAluno()
{
}
public void imprimirAluno()
{
}
public void imprimirAlunos()
{
}
public void gravaObjeto()
{
try
{
//Gera o arquivo para armazenar o objeto
FileOutputStream arquivoGrav =new FileOutputStream("./saida.dat");
//Classe responsavel por inserir os objetos
ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);
//Grava o objeto cliente no arquivo
objGravar.writeObject(turma);
objGravar.flush();
objGravar.close();
arquivoGrav.flush();
arquivoGrav.close();
System.out.println("Objeto gravado com sucesso!");
}
catch (IOException erro)
{
erro.printStackTrace( );
}
System.out.println("Recuperando objeto: ");
try
{
//Carrega o arquivo
FileInputStream arquivoLeitura = new FileInputStream("./saida.dat");
//Classe responsavel por recuperar os objetos do arquivo
ObjectInputStream objLeitura =new ObjectInputStream(arquivoLeitura);
System.out.println(objLeitura.readObject());
objLeitura.close();
arquivoLeitura.close();
}
catch( Exception e ){
e.printStackTrace( );
}
}
}
Agora a saida
########## MENU Sitema ##########Digite 0 para sair do Sistema.
Digite 1 para incluir aluno na turma.
Digite 2 para excluir aluno na turma.
Digite 3 para imprimir aluno.
Digite 4 para imprimir alunos.
Digite 5 para salvar em arquivo.
Digite 6 para importar alunos.########## MENU Sitema ##########
Opção:
1
Digite nome do aluno:
franz
Digite Idade do aluno:
21
Digite Peso do aluno:
63
Exception in thread "main" java.lang.NullPointerException
at academico.Interface.CriarAluno(Interface.java:56)
at academico.Aplication.main(Aplication.java:24)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)