e-commerce84
07-07-2011, 14:24
Ciao,
la mia situazione è questa: dentro un metodo init() aggiungo 3 oggetti di tipo: PrioritaProcessiDTO ad una lista chiamata elements.
Ogni oggetto di tipo PrioritaProcessiDTO contiene solamente 3 campi: tipoProcesso (di tipo String che può valere solo: "annullamento", "sostituzione" o "controllo"), prioritaProcesso (di tipo int) e selezionato (di tipo boolean che però ora non serve)
La lista elements viene correttamente inizializzata, infatti il primo ciclo for stampa correttamente i valori contenuti nelle variabili tipoProcesso e prioritaProcesso di ogni oggetto nella lista.
Ora però vorrei fare in modo che: la lista elements venga scorsa dall'inizio alla fine e che venga creata una entry nella HashMap oldPriorityMap inserendo la coppia <Tipo Processo, Priorità Processo> con Tipo Processo come key per ogni elemento della lista, in pratica ho fatto così:
oldPriorityMap.put(elements.get(i).getTipoProcesso(), elements.get(i).getPrioritaProcesso());
che inserisce nella mappa il valore restituito da getTipoProcesso sull'oggetto in posizione i della lista come key ed il rispettivo valore di priorità come valore collegato a quella key.
Il codice della mia classe è il seguente:
Solo che non funziona infatti i successivi println di controllo mi ritornano null come se nella mappa non avesse messo nulla:
[code]
public void init() throws InfoportalWebException {
try
{
System.out.println("Sono dentro il metodo init");
PrioritaProcessiDTO annullamento = new PrioritaProcessiDTO("annullamento", 1);
PrioritaProcessiDTO sostituzione = new PrioritaProcessiDTO("sostituzione", 2);
PrioritaProcessiDTO controllo = new PrioritaProcessiDTO("controllo", 3);
elements.add(annullamento);
elements.add(sostituzione);
elements.add(controllo);
int elementsSize = elements.size(); // Numero di elementi dentro la lista elements
System.out.println("elementsSize: " + elementsSize);
// Stampa cosa c'è nell'array elements:
for(int i = 0; i < elementsSize; i++)
System.out.println("Tipo Processo: " + elements.get(i).getTipoProcesso() + " Priorita Processo: " + elements.get(i).getPrioritaProcesso());
// Inizializzo la mappa oldPriorityMap inserendo le coppie <Tipo processo, Priorità Processo>
for(int i = 0; i < elementsSize; i++){
oldPriorityMap.put(elements.get(i).getTipoProcesso(), elements.get(i).getPrioritaProcesso());
}
// Stampa il contenuto della mappa relativo alle 3 key inserite:
System.out.println("Controllo: " + oldPriorityMap.get(controllo));
System.out.println("Sostituzione: " + oldPriorityMap.get(sostituzione));
System.out.println("Annullamento: " + oldPriorityMap.get(annullamento));
}
catch(Exception ex3)
{
ex3.printStackTrace();
}
}
}
E questo è l'output che mostra che appunto sembra non abbia inserito nulla dentro la mappa:
Sono dentro il metodo init
elementsSize: 3
Tipo Processo: annullamento Priorita Processo: 1
Tipo Processo: sostituzione Priorita Processo: 2
Tipo Processo: controllo Priorita Processo: 3
Controllo: null
Sostituzione: null
Annullamento: null
Come mai? Cosa ho sbagliato? Come risolvere?
Grazie
Andrea
la mia situazione è questa: dentro un metodo init() aggiungo 3 oggetti di tipo: PrioritaProcessiDTO ad una lista chiamata elements.
Ogni oggetto di tipo PrioritaProcessiDTO contiene solamente 3 campi: tipoProcesso (di tipo String che può valere solo: "annullamento", "sostituzione" o "controllo"), prioritaProcesso (di tipo int) e selezionato (di tipo boolean che però ora non serve)
La lista elements viene correttamente inizializzata, infatti il primo ciclo for stampa correttamente i valori contenuti nelle variabili tipoProcesso e prioritaProcesso di ogni oggetto nella lista.
Ora però vorrei fare in modo che: la lista elements venga scorsa dall'inizio alla fine e che venga creata una entry nella HashMap oldPriorityMap inserendo la coppia <Tipo Processo, Priorità Processo> con Tipo Processo come key per ogni elemento della lista, in pratica ho fatto così:
oldPriorityMap.put(elements.get(i).getTipoProcesso(), elements.get(i).getPrioritaProcesso());
che inserisce nella mappa il valore restituito da getTipoProcesso sull'oggetto in posizione i della lista come key ed il rispettivo valore di priorità come valore collegato a quella key.
Il codice della mia classe è il seguente:
Solo che non funziona infatti i successivi println di controllo mi ritornano null come se nella mappa non avesse messo nulla:
[code]
public void init() throws InfoportalWebException {
try
{
System.out.println("Sono dentro il metodo init");
PrioritaProcessiDTO annullamento = new PrioritaProcessiDTO("annullamento", 1);
PrioritaProcessiDTO sostituzione = new PrioritaProcessiDTO("sostituzione", 2);
PrioritaProcessiDTO controllo = new PrioritaProcessiDTO("controllo", 3);
elements.add(annullamento);
elements.add(sostituzione);
elements.add(controllo);
int elementsSize = elements.size(); // Numero di elementi dentro la lista elements
System.out.println("elementsSize: " + elementsSize);
// Stampa cosa c'è nell'array elements:
for(int i = 0; i < elementsSize; i++)
System.out.println("Tipo Processo: " + elements.get(i).getTipoProcesso() + " Priorita Processo: " + elements.get(i).getPrioritaProcesso());
// Inizializzo la mappa oldPriorityMap inserendo le coppie <Tipo processo, Priorità Processo>
for(int i = 0; i < elementsSize; i++){
oldPriorityMap.put(elements.get(i).getTipoProcesso(), elements.get(i).getPrioritaProcesso());
}
// Stampa il contenuto della mappa relativo alle 3 key inserite:
System.out.println("Controllo: " + oldPriorityMap.get(controllo));
System.out.println("Sostituzione: " + oldPriorityMap.get(sostituzione));
System.out.println("Annullamento: " + oldPriorityMap.get(annullamento));
}
catch(Exception ex3)
{
ex3.printStackTrace();
}
}
}
E questo è l'output che mostra che appunto sembra non abbia inserito nulla dentro la mappa:
Sono dentro il metodo init
elementsSize: 3
Tipo Processo: annullamento Priorita Processo: 1
Tipo Processo: sostituzione Priorita Processo: 2
Tipo Processo: controllo Priorita Processo: 3
Controllo: null
Sostituzione: null
Annullamento: null
Come mai? Cosa ho sbagliato? Come risolvere?
Grazie
Andrea