Functional Programming for Java Developers has the noble goal of introducing ideas from functional programming to developers who are familiar with Java. In my opinion, functional programming will be the dominant programming paradigm within 10 years and this book presents an brief introduction to the world of functional programming, however, there is some ugliness in trying to program functionally in a language like java, that doesn’t treat functions as first class citizens. Honestly, the right book to fulfill introducing functional programming to Java developers will either introduce a functional language that runs on the JVM, like Scala, or use a language like Python, which has many features of a functional language. I think many of the ideas of functional programming, immutability, first-class functions, and the important higher-order functions, map, fold, and friends, are best learned by example and this book doesn’t give good, clean examples of these ideas because Java lacks good, built-in support for these concepts.
The idea behind Functional Programming for Java Developers is a fundamentally good idea, but this book falls short on the need that it was designed to meet. This book is a decent read for someone who is already somewhat familiar with functional programming concepts, but I would not recommend it to someone who is unfamiliar with functional programming. Such a reader may get lost in the ugliness of trying to bolt functional programming onto Java.