Ir ao conteúdo
  • Cadastre-se

Java Problema de atributo em serialização


Posts recomendados

Olá galera,estou com uma problema na minha serialização. Meu programa é para cadastrar Pessoas e Contas. No caso, meu professor pediu para usar MVC(a ideia básica) com os CRUDS. então eu tenho uma classe chamada ContaDAO, onde dentro dela eu tenho um ArrayList para criar uma conta, depois de adicionar no Array em ContaDAO, eu dou um setContas(), que é um método dentro da classe model Pessoa, pois dentro dela eu tenho um ArrayList de contas tambem. Para serialização, quando eu executo o programa deve ter um método para carregar pessoas e contas, quando fecho o programa deve-se ter um método para salvar pessoas e contas. O problema é: Quando eu vou criar mais uma conta para uma pessoa(pois neste trabalho, a pessoa pode ter mais de uma conta), ao invés do número da conta incrementar,ou seja, a nova conta ser a conta 02, ela fica 01. No caso meu professor pediu para o número da conta ser auto incremento. Eu estou serializando os array das duas classes. Neste caso como eu devo fazer para não dar este problema de incremento?

 

Método na classe ContaDAO:

public void serializarContasc(){
        try {
            FileOutputStream fos = new FileOutputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contac.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(list2);
            oos.close();
            fos.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }      
    }
    public Object carregarObjetoContac(){
        try {
            FileInputStream fiz = new FileInputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contac.txt");
            ObjectInputStream ois = new ObjectInputStream(fiz);
            Object obj = ois.readObject();
            ois.close();
            fiz.close();
            return obj;
        } catch (IOException ioe) {
            //System.out.println("\nPrimeira vez sendo utilizado, não há Contas salvas!");
            return null;
        } catch (ClassNotFoundException c) {
            System.out.println("\nClasse não encontrada!");
            c.printStackTrace();
            return null;
        }
    }
    
    public void carregarContasc(){
        ArrayList<Conta> contas = (ArrayList<Conta>)carregarObjetoContac();
        if(contas!=null){
            list2 = contas;
            //System.out.println(list2);
        }else{
            System.out.println("\nAinda não tem Contas cadastradas");
        }
    }
}
Método na classe model Pessoa:

public void serializarContasp(){
        try {
            FileOutputStream fos = new FileOutputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contap.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(contas);
            oos.close();
            fos.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }      
    }
    public Object carregarObjetoContap(){
        try {
            FileInputStream fiz = new FileInputStream("C:\\Users\\i5\\Documents\\NetBeansProjects\\Banco\\src\\b2\\Controle\\contap.txt");
            ObjectInputStream ois = new ObjectInputStream(fiz);
            Object obj = ois.readObject();
            ois.close();
            fiz.close();
            return obj;
        } catch (IOException ioe) {
            //System.out.println("\nPrimeira vez sendo utilizado, não há Contas salvas!");
            return null;
        } catch (ClassNotFoundException c) {
            System.out.println("\nClasse não encontrada!");
            c.printStackTrace();
            return null;
        }
    }
    
    public void carregarContas(){
        ArrayList<Conta> conta = (ArrayList<Conta>)carregarObjetoContap();
        if(conta!=null){
            contas = conta;     
        }
    }
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...