View Single Post
Old 05-04-2007, 14:03   #1
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
[JAVA]Observer-Observable Design Pattern

Ho un piccola problema con l'utilizzo di questo pattern insieme alla formattazione delle date in java.... preso questo pezzo di codice:

Codice:
public void update(Observable o, Object arg) {
	SimpleDateFormat giorno = new SimpleDateFormat("dd/MM/yyyy");
	/* una o più discussioni presenti in questo
	 * newsgroup sono state aggiornate */
	Discussion d = (Discussion)o;
	List<String> list = d.getDifferentDate();
	System.out.println("---> 1ab");
	for(String data : list) {
	    System.out.println("ciao");
	    String aux = giorno.format(data);  <---- 
	    System.out.println("ciao2");
	    if(!differentdate.contains(aux));
		differentdate.add(aux);
	}
	System.out.println("---> 2cd");
	howarticles++;
	System.out.println("###-->"+howarticles);
	System.out.println("###-->"+differentdate.size());
	modify();
    }
mi trovo nell'assurda situazione in cui, quando un oggetto observable viene modificato e di conseguenza viene chiamato il metodo update dell'oggetto osservatore, il flusso di controllo al momento di arrivare alla riga di codice definita dalla feccia rossa "sparisce"!! ...nel senso che in console vedo una sfilza di "---> 1ab" ....come se andasse in loop il for! ....il problema è che in realtà il programma non va in loop (un solo thread e quindi un solo flusso di controllo) e cosa + strana, quando vado a togliere la stringa che mi parsa la data il flusso di controllo mi stampa correttamente anche la "---> 2cd" !
O siamo entrati nel campo della metafisica oppure sono io che non ho capito bene il concetto di flusso di controllo, thread, ecc....
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso