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ì:
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.codice:oldPriorityMap.put(elements.get(i).getTipoProcesso(), elements.get(i).getPrioritaProcesso());
Il codice della mia classe è il seguente:
[code]
Solo che non funziona infatti i successivi println di controllo mi ritornano null come se nella mappa non avesse messo nulla:
E questo è l'output che mostra che appunto sembra non abbia inserito nulla dentro la mappa:codice: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(); } } }
Come mai? Cosa ho sbagliato? Come risolvere?codice: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
Grazie
Andrea

Rispondi quotando