AFAIK, You can't do ClassName::instanceMethod() You have to do classInstance::instanceMethod()
So, even if getAddressOption() was an instance method, you would have to do onePersonInstance::getAddressOption, and the method reference is bound to that one instance which wouldn't fit with the example. On Friday, November 2, 2012 4:33:14 PM UTC-5, Ricky Clarkson wrote: > > 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 <clayt...@gmail.com <javascript:>> > 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 > >> <fabrizio...@tidalwave.it> wrote: > >> > On Fri, 02 Nov 2012 21:12:07 +0100, clay <clayt...@gmail.com> 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 - fabrizio...@tidalwave.it > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "Java Posse" group. > >> > To post to this group, send email to java...@googlegroups.com. > >> > To unsubscribe from this group, send email to > >> > javaposse+...@googlegroups.com. > >> > 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 java...@googlegroups.com<javascript:>. > > > To unsubscribe from this group, send email to > > javaposse+...@googlegroups.com <javascript:>. > > 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/-/mhPVSnOnsIYJ. To post to this group, send email to javaposse@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.