Method overloading has always been a topic with mixed feelings. We've blogged about it and the caveats that it introduces a couple of times: You Will Regret Applying Overloading with Lambdas! Keeping things DRY: Method overloading Why Everyone Hates Operator Overloading API Designers, be Careful There are two main reasons why overloading is useful: To … Continue reading Java 8’s Method References Put Further Restrictions on Overloading
Tag: Java 8
Functional Programming in Java 8 with vavr
We're very happy to announce a guest post on the jOOQ Blog written by Daniel Dietrich, Senior Software Engineer at HSH Nordbank, husband and father of three. He currently creates a pricing framework for financial products as project lead and lead developer. Besides his work, he is interested in programming languages, efficient algorithms and data … Continue reading Functional Programming in Java 8 with vavr
How to FlatMap a JDBC ResultSet with Java 8?
You're not into the functional mood yet? Then the title might not resonate with you - but the article will! Trust me. Essentially, we want this: +------+------+------+ | col1 | col2 | col3 | +------+------+------+ | A | B | C | row 1 | D | E | F | row 2 | G … Continue reading How to FlatMap a JDBC ResultSet with Java 8?
How to Use Java 8 Streams to Swiftly Replace Elements in a List
Imagine you have a list of items: List<String> books = Arrays.asList( "The Holy Cow: The Bovine Testament", "True Hip Hop", "Truth and Existence", "The Big Book of Green Design" ); (Don't judge me. Books from this random book generator) Now you'd like to create a new list where the third item only is replaced by … Continue reading How to Use Java 8 Streams to Swiftly Replace Elements in a List
One Year After Java 8’s Release, IDEs and Compilers are not Fully Ready Yet
One year ago, on March 18, 2014, Java SE 8 was released, and with it, the bliss of functional programming through lambda expressions and the streams API. These were great news for all of our Java ecosystem, and many people have already upgraded to Java 8. Stack Overflow already yields almost 2500 questions about Java … Continue reading One Year After Java 8’s Release, IDEs and Compilers are not Fully Ready Yet
Avoid Recursion in ConcurrentHashMap.computeIfAbsent()
Sometimes we give terrible advice. Like in that article about how to use Java 8 for a cached, functional approach to calculating fibonacci numbers. As Matthias, one of our readers, noticed in the comments, the proposed algorithm may just never halt. Consider the following program: public class Test { static Map<Integer, Integer> cache = new … Continue reading Avoid Recursion in ConcurrentHashMap.computeIfAbsent()
jOOQ Tuesdays: Raoul-Gabriel Urma Explores What Java 8 and English have in Common
Welcome to the jOOQ Tuesdays series. In this series, we’ll publish an article on the third Tuesday every other month where we interview someone we find exciting in our industry from a jOOQ perspective. This includes people who work with SQL, Java, Open Source, and a variety of other related topics. We have the pleasure … Continue reading jOOQ Tuesdays: Raoul-Gabriel Urma Explores What Java 8 and English have in Common
You Will Regret Applying Overloading with Lambdas!
Writing good APIs is hard. Extremely hard. You have to think of an incredible amount of things if you want your users to love your API. You have to find the right balance between: Usefulness Usability Backward compatibility Forward compatibility We've blogged about this topic before, in our article: How to Design a Good, Regular … Continue reading You Will Regret Applying Overloading with Lambdas!
How to Translate SQL GROUP BY and Aggregations to Java 8
I couldn't resist. I have read this question by Hugo Prudente on Stack Overflow. And I knew there had to be a better way than what the JDK has to offer. The question reads: I'm looking for a lambda to refine the data already retrieved. I have a raw resultset, if the user do not … Continue reading How to Translate SQL GROUP BY and Aggregations to Java 8
Using Java 8 to Prevent Excessively Wide Logs
Some logs are there to be consumed by machines and kept forever. Other logs are there just to debug and to be consumed by humans. In the latter case, you often want to make sure that you don't produce too much logs, especially not too wide logs, as many editors and other tools have problems … Continue reading Using Java 8 to Prevent Excessively Wide Logs
