Ah! Bellissima, grazie! -- 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 Wed, 5 Aug 2020 at 11:09, Andrea Curtoni [email protected] [it-torino-java-jug] <[email protected]> wrote: > > > 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>. >>>> >>>> >
