<story><title>Modern Java – A Guide to Java 8</title><url>https://github.com/winterbe/java8-tutorial</url></story><parent_chain></parent_chain><comment><author>mabbo</author><text>My Java code has improve dramatically since I started (ab)using Optionals.&lt;p&gt;&lt;pre&gt;&lt;code&gt;  String foo = Optional.ofNullable(paramater)
                       .filter(...)
                       .map(a -&amp;gt; ...)
                       .map(b -&amp;gt; ...)
                       .orElseGet(() -&amp;gt; ...)
                       .orElse(defaultValue)
&lt;/code&gt;&lt;/pre&gt;
Between this kind of thing, and similar playing with Streams, some of the ugliest code I work with is suddenly quite clear, coherent, understandable.</text></comment>
<story><title>Modern Java – A Guide to Java 8</title><url>https://github.com/winterbe/java8-tutorial</url></story><parent_chain></parent_chain><comment><author>struppi</author><text>This is a really nice overview of the new Java 8 features. I like how this tutorial communicates mostly with code snippets and has &amp;quot;read more&amp;quot; links for most topics.&lt;p&gt;If you are using Java and have not tried Lambda Expressions, method references and default methods, do so now! After that, you&amp;#x27;ll think &amp;quot;How was I able to live without that?&amp;quot;.&lt;p&gt;I also think that the way Java integrates lambda expressions (via functional interfaces) is really nice. Sure, you have to write some boilerplate code in some scenarios. But since they re-used interfaces and did not event some &amp;quot;function&amp;quot; type (or similar), it fits really nicely into the existing language.&lt;p&gt;If you don&amp;#x27;t know Java, this tutorial will probably not be enough - But that probably wasn&amp;#x27;t the intentian anyway. It&amp;#x27;s a great intro to what has changed with Java 8 (and all those changes are real improvements for the Java language, IMHO).</text></comment>