A 1-day course that turns experienced Java 8 developers into experts on all things Lambdas,
Optionals, and default methods
A 2 to 3-day course, introducing Java 8's core from lambda expressions and default methods to
CompletableFuture and the DateTime API
How to repackage checked exceptions that get thrown in a Java stream pipeline so that they can be thrown without the compiler complaining about it.
With this talk, I help you get the most out of lambdas,
Optionals, and default methods, helping you master Java 8's core features
Articles about Java 8's streams often repeat a bunch of tropes: succinctness, ugly mechanics, anemic pipelines, weak exception handling. This is a rebuttal!
Stream.findFirst() and findAny() work with any number of elements in the stream. Make sure to reduce(toOnlyElement()) if there should be at most one.
Another post about stream performance - this one implements your ideas about how else to approach the topic.
A close look at stream performance. How do they compare to for and for-each loops oder arrays and lists. And what role plays boxing?
Stephen Colebourne presented his pragmatic approach to using Optional. I argue for a stricter one that gets us further without considerable downsides.
Proposal to implement new casting methods on Java's Class. They aim to fulfill the need for improved ways to cast which was created by Java 8.
Anonymous classes are verbose and obfuscating. Functional implementations can oust them from their last strongholds (mainly abstract classes).
Why interface evolution with default methods does not work for whole interfaces - at least not smooth enough to be practical.
Java has no Elvis operator (or null coalescing operator / null-safe member selection) but with lambda expressions / method references you can roll your own.
Patterns for interface evolution with default methods: gradually add, replace and remove interface methods without breaking client code.
An explanation of value-based classes in Java 8. Why do they exist? What are their limitations? How (not) to use them?
Covering literally everything there is to know about Java 8's default methods.
There are new Javadoc tags used in Java 8: @apiNote, @implSpec, and @implNote. Take a look at their history, meaning and use on command line and with Maven.
See how Java's creation of instances of non-capturing lambda expressions can lead to unexpected and possibly bug-inducing behavior.
Discussing the talk "Lambdas in Java: A peek under the hood" given by Brian Goetz at the goto; conference 2013 in Aarhus.
A summary of why you can't serialize Optional and what can be done to deal with that limitation if necessary.
Discussing the reasons for not making Java 8's new type Optional serializable.
A digest of how Optional was introduced in Java 8, summarizing the many discussions about it and their key points based on the mail archive of JSR-335.
Write intention revealing code with Java 8's new type Optional and prevent most NPEs. This is not optional!