Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    23

    per favore mi "traducete" questo IF?

    ecco l'if...io mi sono perso


    if(_miocode == null ? value != null : !_miocode.equals(value))
    {
    _modifSet |= 2;
    _miocode = value;
    }


    grazie

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Un pò strano ma efficiente, controlla se _miocode uguale a null, in caso di sì e value non è null lo assegna a _miocode.
    In caso di no, controlla se uguale a value, e se no, lo assegna ancora.

    codice:
    if (_miocode==null)
    {
      if (value!=null) _miocode=value;
    }
    else if (_miocode.equals(value)==false) _miocode=value;

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: per favore mi "traducete" questo IF?

    Originariamente inviato da madama05
    ecco l'if...io mi sono perso

    if(_miocode == null ? value != null : !_miocode.equals(value))
    {
    _modifSet |= 2;
    _miocode = value;
    }


    grazie
    Prima valuta _miocode == null ? value != null : !_miocode.equals(value): Se _miocode == null è true restituisce il risultato di value != null altrimenti restituisce !_miocode.equals(value). Il risultato di questa roba è un booleano che viene usato come condizione dell'if.
    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
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    23
    ok, grazie, ora è chiaro

    ma era sbaglaito scrivere:

    _miocode == value

    anziche

    _miocode.equals(value)


    e poi: mi dite che operatore è questo |= ?

    _modifSet |= 2;

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da madama05
    e poi: mi dite che operatore è questo |= ?

    _modifSet |= 2;
    Esattamente equivalente a:

    _modifSet = _modifSet | 2;


    Compound Assignment Operators
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    23
    quindi fa l'OR bit a bit tra la variabile modifSet e il valore 2, ovvero forza a uno il secondo bit meno significativo, giusto?

    e per l'altra sintassi: _miocode.equals(value)

    avrei potuto scrivere al suo posto questo:

    _miocode == value

    o avrei sbagliato?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da madama05
    quindi fa l'OR bit a bit tra la variabile modifSet e il valore 2, ovvero forza a uno il secondo bit meno significativo, giusto?
    Sì.

    Originariamente inviato da madama05
    e per l'altra sintassi: _miocode.equals(value)

    avrei potuto scrivere al suo posto questo:

    _miocode == value
    Con i tipi reference, == verifica solo se i due reference sono uguali .... non se il contenuto dei due oggetti è uguale!!!

    Integer a = new Integer(10);
    Integer b = new Integer(10);

    a == b è sempre false.
    Perché sono oggetti distinti!

    a.equals(b) è true perché hanno lo stesso contenuto (l'intero 10 incapsulato nel Integer).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    23
    credo di aver capito

    una cosa è una istanza di un oggetto integer:

    Integer a = new Integer(10);

    altra cosa è la variabile di tipo integer

    Integer a=10;

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da madama05
    credo di aver capito

    una cosa è una istanza di un oggetto integer:

    Integer a = new Integer(10);

    altra cosa è la variabile di tipo integer

    Integer a=10;
    No ... non hai capito.

    Se a e b sono 2 variabili di tipo "reference", allora a == b è true solo se i due reference sono uguali, ovvero entrambi sono null o entrambi fanno riferimento allo stesso identico oggetto.

    Nel caso di:
    Integer a = 10;
    Integer b = 10;

    Questo è lecito ma solo da Java 5 che ha introdotto il "autoboxing/unboxing". E nel caso dei valori 10, a == b è true perché il framework tiene "cachati" degli oggetti Integer nel range -128...+127 e ad 'a' e 'b' viene assegnato il reference ad uno stesso oggetto (grazie al autoboxing appunto).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    23
    andbin, perdonami ma non ci sono, che significa che fanno riferimento allo stesso identico oggetto?

    se io scrivo:
    Integer a = new Integer(10);

    sto creando un oggetto istanza della classe Integer, idem per b...

    mi spieghi meglio? perdona il livello....

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 © 2026 vBulletin Solutions, Inc. All rights reserved.