ecco l'if...io mi sono perso
if(_miocode == null ? value != null : !_miocode.equals(value))
{
_modifSet |= 2;
_miocode = value;
}
grazie
ecco l'if...io mi sono perso
if(_miocode == null ? value != null : !_miocode.equals(value))
{
_modifSet |= 2;
_miocode = value;
}
grazie
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
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.Originariamente inviato da madama05
ecco l'if...io mi sono perso
if(_miocode == null ? value != null : !_miocode.equals(value))
{
_modifSet |= 2;
_miocode = value;
}
grazie
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
ok, grazie, ora è chiaro
ma era sbaglaito scrivere:
_miocode == value
anziche
_miocode.equals(value)
e poi: mi dite che operatore è questo |= ?
_modifSet |= 2;
Esattamente equivalente a:Originariamente inviato da madama05
e poi: mi dite che operatore è questo |= ?
_modifSet |= 2;
_modifSet = _modifSet | 2;
Compound Assignment Operators
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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?
Sì.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?
Con i tipi reference, == verifica solo se i due reference sono uguali .... non se il contenuto dei due oggetti è uguale!!!Originariamente inviato da madama05
e per l'altra sintassi: _miocode.equals(value)
avrei potuto scrivere al suo posto questo:
_miocode == value
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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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.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;
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.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
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....