Salve a tutti
ho un problema con un oggetto ArrayList (probabilmente non mi e' chiaro concettualmente)
In pratica mi sono creato un Oggetto che ho chiamato "OggettoNuovo" i cui attributi sono 3 campi:
1 campo di tipo stringa, 1 campo booleano e 1 campo contenente una Lista di "OggettoNuovo"
Nella mia classe "ClasseDiProva" ho voluto crearmi una variabile chiamata "on" che e' un ArrayList
di "OggettoNuovo".
Poi nel main mi creo una variabile di tipo "OggettoNuovo" (che senza troppa fantasia ho chiamato proprio
"oggettoNuovo"). Aggiungo due elementi alla mia ArrayList come scritto nel codice che vi posto qua' sotto.
Quando stampo gli elementi della lista, l'ultimo oggetto inserito...mi ha sovrascritto anche gli oggetti precedenti.
E' PIU' SEMPLICE....MOSTRANDOVI IL IL CODICE .....
le due print finali...mi stampano entrambe l'oggetto "OggettoNuovo" che ha per valore di stringa "Stringa 2".
In pratica l'elemento con stringa "Stringa 1" mi sparisce!!!!!!!!!!
sto cercando di capire dove sbaglio.....vi ringrazio moltissimo!!!!!
PZ
import java.util.List;
import java.util.ArrayList;
public class ClasseDiProva {
private List<OggettoNuovo> on;
public ClasseDiProva(){
on = new ArrayList<OggettoNuovo>();
}
public static void main(String[] args) {
ClasseDiProva cdp = new ClasseDiProva();
OggettoNuovo oggettoNuovo = new OggettoNuovo();
oggettoNuovo.setStringaServizioCows("Stringa 1");
oggettoNuovo.setNestedXml(true);
cdp.oxc.add(oggettoNuovo);
oggettoNuovo.setStringaServizioCows("Stringa 2");
oggettoNuovo.setNestedXml(true);
cdp.oxc.add(oggettoNuovo);
System.out.println(cdp.oxc.size());
System.out.println(cdp.oxc.get(0).getStringaServiz ioCows() + "\n"); // STAMPA Stringa 2 -> Perche'???
System.out.println(cdp.oxc.get(1).getStringaServiz ioCows() + "\n"); // STAMPA Stringa 2
} // fine main
}

Rispondi quotando
