It's rare that you actually expose public fields in Java, so let's assume addressOption and friends are methods, and then the method reference syntax works fine.
Also, I said 'with proper support', regarding the returned collection type. :) But sure, adding a .into wouldn't be too bad. On Fri, Nov 2, 2012 at 6:09 PM, clay <[email protected]> wrote: > First, you can't use the :: method reference syntax with a variable. > > Secondly, the map and flatMap functions currently exist on the Stream > interface and return a modified Stream. So you have to start with > people.stream() and end with either a Stream instance or call > .into(someCollection) to put them into a collection. > > > On Friday, November 2, 2012 3:29:25 PM UTC-5, Ricky Clarkson wrote: >> >> With proper support it would be: >> >> List<String> zips2 = >> people.flatMap(Person::addressOption).flatMap(Address:zipOption); >> >> That might take a stubborn person a couple of minutes to understand >> but after that even the most determined anti-flatmapper will be able >> to curse, rewrite, fire the writer of but ultimately understand code >> like this without any real trouble. >> >> On Fri, Nov 2, 2012 at 5:22 PM, Fabrizio Giudici >> <[email protected]> wrote: >> > On Fri, 02 Nov 2012 21:12:07 +0100, clay <[email protected]> wrote: >> > >> >> In hindsight, a simpler solution (with static import of custom >> >> toIterable >> >> method) would be: >> >> >> >> final List<String> zips2 = new ArrayList<String>(); >> >> for (Person p : people) { for (Address a : toIterable(p.addressOption)) >> >> { >> >> for (String z : toIterable(a.zipOption)) { zips2.add(z); } } } >> > >> > >> > Honestly, I don't find it particularly readable. >> > >> > >> > >> > -- >> > Fabrizio Giudici - Java Architect @ Tidalwave s.a.s. >> > "We make Java work. Everywhere." >> > http://tidalwave.it/fabrizio/blog - [email protected] >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Java Posse" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/javaposse?hl=en. >> > > > -- > You received this message because you are subscribed to the Google Groups > "Java Posse" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/javaposse/-/SBpf_wVxh0gJ. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. -- You received this message because you are subscribed to the Google Groups "Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
