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>. >>> >>> >
