Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [JAVA] Problema metodo

  1. #1

    [JAVA] Problema metodo

    Salve a tutti, allora avrei una domanda, sto facendo un programmino con una simulazione di chat, vorrei crearmi due metodi (helpers) privati che verifichino la presenza o meno di un oggetto ( nel mio caso un utente) all interno di una lista che gestisce gli utenti collegati. Questi metodi controllano sia se il sender è già presente e sia se il receiver è già presente in modo tale da sfruttarli in un altro metodo che si occuperà dell accesso dell utente.

    So che la domanda è stupida ma non riesco a capire perchè il valore mi torna sempre false.
    Perdonatemi è da poco che studio java.


    codice:
    public boolean verifySender(User sender){
    
     if( utentiInChat.contains(sender)){
    
     }
     return false; 
    
    }

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Perchè dentro all'if non c'è nulla, quindi arriva lì, esegue l'istruzione nulla (non fa niente) e poi passa a return false.
    Dovrebbe essere sufficiente scrivere così:

    codice:
    public boolean verifySender(User sender){
    
     if( utentiInChat.contains(sender)){
        return true;
     }
     return false; 
    
    }
    o anche

    codice:
    public boolean verifySender(User sender){
    
     return utentiInChat.contains(sender);
    
    }

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Oltre a quanto detto da minomic aggiungo: User ridefinisce correttamente il metodo equals?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Sono un pollo! Grazie della risposta!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Alex'87
    Oltre a quanto detto da minomic aggiungo: User ridefinisce correttamente il metodo equals?
    una nota: oltre ad equals, ricorda hashcode (e il buon LeleFt se ha tempo e voglia ci ricorda il perché bisogna farlo). In soldoni: due oggetti sono uguali se e solo se equals torna true e gli hashcode sono uguali.
    Bisogna ricordarsi di implementare tali metodi qualora si lavori con le collection.

    Altra soluzione è l'uso di mappe, sfruttando get(chiave) che torna null se l'elemento non è presente, l'elemento se ti serve (e lavori su tipi che in genere sono primitivi, già ottimizzati per ricerche di questo tipo)
    RTFM Read That F*** Manual!!!

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da valia
    una nota: oltre ad equals, ricorda hashcode (e il buon LeleFt se ha tempo e voglia ci ricorda il perché bisogna farlo). In soldoni: due oggetti sono uguali se e solo se equals torna true e gli hashcode sono uguali.
    Beh, l'hai già detto tu.
    La documentazione di equals() (in Object) è chiara:

    Note that it is generally necessary to override the hashCode method whenever this method ( equals() ) is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.
    Che ricalca quanto esplicitato nella documentazione di hashCode():

    If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da LeleFT
    Beh, l'hai già detto tu.

    noooo io intendevo la teoria dietro
    non la versione corta della javadoc

    Vabbé cmq riassunto molto riassunto abbiamo detto tutto (stiamo andando OT, abbiate pazienza il caldo dà alla testa )

    RTFM Read That F*** Manual!!!

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.