Olá pessoal,
Tenho uma classe EMPRESA que tem um método Incluir passando por parâmetro a própria empresa, chamando um método estático "ListarEmpresa.gravar( empresa )". Essa Classe ListarEmpresa tem um ArrayList estático que serve para armazenar todas as empresas criadas, nada mais. O método gravar passa a empresa e adiciona a lista. Até aí funcionou.
Fiz uma classe GUI simples q passa o nome da empresa e qdo clica no botão Salvar, chama o método Incluir de Empresa.
public class Empresa {
private String nome;
public Empresa( String nome ) {
this.nome= nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void incluir( Empresa e ){
ListaEmpresa.gravar( e );
}
}
import java.util.ArrayList;
import java.io.*;
/**
*
* @author Negrão
*/
public class ListaEmpresa implements Serializable {
public static ArrayList<Empresa> lista= new ArrayList<Empresa>();
public ListaEmpresa() {
}
public static void gravar( Empresa e ){
lista.add( e );
}
public static void listar( ){
for (Empresa emp : lista) {
System.out.println( emp.getNome() );
}
}
}
private void salvarActionPerformed(java.awt.event.ActionEvent evt) {
Empresa emp= new Empresa( tfEmpresa.getText() );
emp.incluir( emp );
Gravar.gravaDados( ????????????? ); // NÃO SEI COMO PASSAR A CLASSE LISTA AQUI !
}
Neste código acima, onde está as ??????????? é justamente a passagem da classe ListaEmpresa. Como a classe só tem atributos e métodos estáticos, não crio uma instancia da mesma, então como passar esta instancia para salvar???
Abaixo o código da Classe Gravar ( Só pra não passar em branco )import java.io.*;
public class Gravar implements Serializable {
public void gravarDados( ListaEmpresa lista ){
try{
FileOutputStream fileStream= new FileOutputStream( "Banco.ser" );
ObjectOutputStream os= new ObjectOutputStream( fileStream );
os.writeObject( lista );
os.close();
}catch( Exception e ){
System.out.println( "Não foi possivel Gravar" ); //Sei que não devo ter esse tipo de saída em Gui, mas é um teste.
}
}