Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Java - Evento sulla variazione del valore di un attributo

    Buon giorno a tutti,
    ho la necessità di scatenare un evento se il valore di un attributo cambia (ad esempio se il valore di un booleano cambia da true a false).

    Per ora sto gestendo la cosa con un ciclo continuo e uno sleep di un secondo
    codice:
    boolean attr = false;		
    while(true){		
    	if(attr==true){...}
    	Thread.sleep(1000);			
    }
    ma non mi piace molto, quindi immagino che ci sia un ascoltatore di eventi da applicare, un monitor o qualcos'altro.....

    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Applica il pattern Observer.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Java - Evento sulla variazione del valore di un attributo

    Originariamente inviato da Ottavioinfo
    ho la necessità di scatenare un evento se il valore di un attributo cambia (ad esempio se il valore di un booleano cambia da true a false).

    quindi immagino che ci sia un ascoltatore di eventi da applicare, un monitor o qualcos'altro.....
    In generale in Java (e molti altri linguaggi) non esiste nulla per ricevere "notifica" solo al variare di una semplice variabile.

    Se vuoi realizzare una architettura che permetta di avere "proprietà" per cui una modifica causi un "evento", c'è il pattern "Observer" o la realizzazione di un "listener" (come quelli di AWT/Swing) che è una specializzazione del Observer.
    Ma non c'è nulla di "gratuito" .... va implementato in modo apposito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Se ogni volta per modificare una variabile invece di fare

    codice:
    boolean variabile;
    ...
    variabile = true;
    facessi:

    codice:
    Boolean variabile;
    ...
    setVariabile (variabile, true);
    ....
    
    public void setVariabile (variabile, true) { variabile = true; }
    oppure ancora più stiloso secondo me, crei la tua variabile come una classe interna:

    codice:
    ....
    class MioBoolean {
      private boolean b;
    
      public MioBoolean (boolean init) {
        b = init;
      }
    
      public MioBoolean () {
        b = true;
      }
    
      public void setMioBoolean (boolean nuovoValore) {
        b = nuovoValore;
      }
    
      public boolean getMioBoolean () {
        return b;
      }
    };
    ...
    MioBoolean flag = new MioBoolean();
    ..
    flag.setMioBoolean(true);
    ....
    
    if (flag.getMioBoolean())
    ....
    Non è una cosa tanto male

    Cambi i metodi set con i controlli che vuoi fare alla modifica di quella variabile, e risolvi tutto.
    lolide
    Java Programmer

    Informati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.