La classe dovrebbe essere una sola, definita a compile time, quando la lambda viene "de-sugared"
Uberto On Thu, 29 Nov 2018 at 09:04, Riccardo Tasso [email protected] [it-torino-java-jug] <[email protected]> wrote: > > > Sicuramente è un bel trick, ma non è costoso creare una inner class per > ogni elemento dello stream? > > Il giorno mer 28 nov 2018, 21:42 Simone Bordet [email protected] > [it-torino-java-jug] <[email protected]> ha scritto: > >> >> >> Ho appena letto la newsletter "Java Specialist" di Heinz Kabutz, dove >> riporta che Henri Tremblay ha trovato un modo di usare le tuple negli >> streams di Java 8: >> >> Arrays.asList("1", "22", "333").stream() >> .map(v -> new Object() { >> String value = v; >> int length = v.length(); >> }) >> .filter(tuple -> tuple.length % 2 == 0) >> .forEach(tuple -> System.out.println(tuple.value)); >> >> Notate come in map() viene creata una anonymous inner class di Object >> con 2 fields, "value" e "length", che può poi essere referenziata dopo >> in altri metodi di Stream. >> >> Funziona da Java 8 in avanti. >> >> Devo dire che sono impressionato! >> >> -- >> Simone Bordet >> --- >> Finally, no matter how good the architecture and design are, >> to deliver bug-free software with optimal performance and reliability, >> the implementation technique must be flawless. Victoria Livschitz >> > >
