salve ragazzi, ho un problema che riguarda la serializzazione di una LinkedList, vi spiego meglio il problema:
Questa è la classe che dovrei serializzare:
Codice PHP:public class Applicazione implements Serializable{
private AssAmbientalista lnkAssAmbientalista;
private LinkedList<Compagnia_Petrolifera> listaCompagnie;
private LinkedList <Pozzo>listaPozzi;
private LinkedList<AreaGeografica> listaAree;
private LinkedList<AssAmbientalista> listaAss;
private File file;
public Applicazione() {
listaCompagnie = new LinkedList<Compagnia_Petrolifera>();
listaPozzi = new LinkedList<Pozzo>();
listaAree = new LinkedList<AreaGeografica>();
listaAss = new LinkedList<AssAmbientalista>();
file=null;
}
public Applicazione(Applicazione o) {
listaCompagnie = o.getCompagnie();
listaPozzi = o.getPozzi();
listaAree = o.getAree();
listaAss = o.getAssociazioni();
file=null;
}
public void serializza(){
try {
file = new File("dati.dat");
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(this);
out.close();
}
catch(IOException ex) {ex.printStackTrace(); }
}
public void addCompagnia(Compagnia_Petrolifera p) {
listaCompagnie.add(p);
}
public void addPozzo(Pozzo p) {
listaPozzi.add(p);
}
public void removeCompagnia(Compagnia_Petrolifera p) {
listaCompagnie.remove(p);
}
public void removeCompagnia(Pozzo p) {
listaPozzi.remove(p);
}
public void addArea(AreaGeografica p) {
listaAree.add(p);
}
public void addAss(AssAmbientalista p) {
listaAss.add(p);
}
public void removeAss(AssAmbientalista p) {
listaAss.remove(p);
}
public LinkedList<AreaGeografica> getAree(){ return listaAree;}
public LinkedList<Compagnia_Petrolifera> getCompagnie(){ return listaCompagnie;}
public LinkedList<Pozzo> getPozzi(){ return listaPozzi;}
public LinkedList<AssAmbientalista> getAssociazioni(){ return listaAss;}
public Pozzo getPozzo(String cod){
Iterator it=listaPozzi.iterator();
while(it.hasNext()){
Pozzo p=(Pozzo)it.next();
if(cod.equals(p.getCod())){
return p;
}
}
return null;
}
public Compagnia_Petrolifera getCompagnia(String codFisc){
Iterator it=listaCompagnie.iterator();
while(it.hasNext()){
Compagnia_Petrolifera c=(Compagnia_Petrolifera)it.next();
if(c.getCodFisc().equals(codFisc)){
return c;
}
}
return null;
}
public AssAmbientalista getAssociazione(String nome){
Iterator it=listaAss.iterator();
while(it.hasNext()){
AssAmbientalista c=(AssAmbientalista)it.next();
if(c.getNome().equals(nome)){
return c;
}
}
return null;
}
}
La serializzazione va a buon fine se io inserisco oggetti in tutte le LinkedList, tranne che in "LinkedList <Pozzo>listaPozzi".
Premetto che pozzo è una classe astratta, e ha 2 eredi, che vengono inseriti nella LinkedList listapozzi.
Nella LinkedList "listapozzi", vado ad inserire ogni pozzo aggiunto, ma quando vado a serializzare la classe mi da quest'errore:
java.io.NotSerializableException: java.util.LinkedList$ListItrat java.io.ObjectOutputStream.writeObject0(ObjectOutp utStream.java:1156)
Tutte le classi contenute dentro Pozzo, gli eredi, e tutte quelle che devede presenti nelle liste implementano l'interfaccia Serializable.
Mi sapete dire il perchè di questo errore riferito solo a quella lista??![]()
![]()
![]()
Le altre le ho testate e vengono serializzate senza nessun problema!!!
![]()
![]()

Rispondi quotando