Mi ha fatto tornar in mente "2+2=5 in Java":
https://codegolf.stackexchange.com/a/28818

😊

Il mar 4 ago 2020, 17:48 bruno bossola [email protected]
[it-torino-java-jug] <[email protected]> ha scritto:

>
>
> Il problema qui e' il boxing/unboxing under the hood, che non e' "visible"
> in quel pezzetto di codice a meno che tu non estragga quelle due
> variabili.  Quando vedi che sono *Integer* lo sai che un "=" e'
> una minchiata a prescindere dal pattern utilizzato a generare l'istanza.
>
> La cache e' comunque un problema perche i test sono verdissimi a meno che
> tu non vada con un valore al di fuori della cache. Quel codice era infatti
> testato e con 100% coverage :)
>
> Ciaps!
>
> --
> Bruno Bossola
> CTO - meterian.io
> Scan your website now! <https://www.meterian.com/webscanner.html>
> Scan your project now! <https://www.meterian.com/projectscanner.html>
>
>
> On Tue, 4 Aug 2020 at 16:25, Andrea Ligios [email protected]
> <[email protected]> [it-torino-java-jug] <
> [email protected]> wrote:
>
>>
>>
>> Ciao,
>> è il mitico Flyweight pattern :) me lo ricordavo dalla famosa Q&A di
>> BalusC sulle implementazioni pratiche dei GoF
>> <https://stackoverflow.com/a/2707195/1654265>.
>>
>> Occhio perché è implementato in parecchi altri posti:
>>
>>> Flyweight <http://en.wikipedia.org/wiki/Flyweight_pattern> (recognizeable
>>> by creational methods returning a cached instance, a bit the "multiton"
>>> idea)
>>>
>>>    - java.lang.Integer#valueOf(int)
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#valueOf-int->
>>>    (also on Boolean
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html#valueOf-boolean->,
>>>    Byte
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#valueOf-byte->,
>>>    Character
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#valueOf-char->,
>>>    Short
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Short.html#valueOf-short->,
>>>    Long
>>>    
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html#valueOf-long->
>>>    and BigDecimal
>>>    
>>> <https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html#valueOf-long-int->
>>>    )
>>>
>>>
>> Un saluto
>>
>> Andrea
>>
>> Il giorno mar 4 ago 2020 alle ore 17:11 Carlo Pellegrini
>> [email protected] [it-torino-java-jug] <
>> [email protected]> ha scritto:
>>
>>>
>>>
>>> Ciao Bruno!
>>>    Purtroppo è capitato anche a me qualche tempo fa...
>>> La IntegerCache è comoda, ma nasconde questi errori subdoli, in più può
>>> cambiare a runtime con -Djava.lang.Integer.IntegerCache.high=<size>.
>>>
>>> 
>

Reply via email to