Salve a tutti, sono nuovo di questo forum quindi scusate per eventuali errori.
Ho un problema con una classe java, in pratica nella classe ho implementato due metodi carica e salva per due oggetti diversi, nel costruttore della classe in questione chiamo i metodi carica dei due oggetti, il problema è che il secondo metodo che chiamo mi crea un oggetto null e questo accade anche al primo se inverto l'ordine di chiamata, quindi il primo oggetto viene scritto correttamente sul file mentre il secondo rimane null.
Ecco il codice e grazie in anticipo.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class Prova{
public Prova(String path){
pathProdotti = path+"prodotti.dat";
pathSconti = path+"politicheSconti.dat";
caricaSconti();
caricaProdotti();
}
public void salvaProdotti(){
try {
ObjectOutputStream out;
out = new ObjectOutputStream(new FileOutputStream(pathProdotti));
out.writeObject(prodotti);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void caricaProdotti(){
try {
ObjectInputStream in;
in= new ObjectInputStream(new FileInputStream(pathProdotti));
prodotti=(ArrayList<String>)in.readObject();
in.close();
} catch (ClassNotFoundException | IOException e) {
prodotti= new ArrayList<String>();
salvaProdotti();
}
}
public void salvaSconti(){
try {
ObjectOutputStream out;
out = new ObjectOutputStream(new FileOutputStream(pathSconti));
out.writeObject(sconti);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void caricaSconti(){
try {
ObjectInputStream in;
in= new ObjectInputStream(new FileInputStream(pathSconti));
sconti=(boolean[])in.readObject();
in.close();
} catch (ClassNotFoundException | IOException e ) {
sconti = new boolean[3];
sconti[0]=false;
sconti[1]=false;
sconti[2]=false;
salvaSconti();
}
}
private ArrayList<String> prodotti;
private String pathProdotti;
private String pathSconti;
private boolean[] sconti;
}