Book Image

Java 9 with JShell

By : Gaston C. Hillar
Book Image

Java 9 with JShell

By: Gaston C. Hillar

Overview of this book

The release of Java 9 has brought many subtle and not-so-subtle changes to the way in which Java programmers approach their code. The most important ones are definitely the availability of a REPL, known as JShell, which will make experiments and prototyping much more straightforward than the old IDE-based project-led approach. Another, more subtle change can be seen in the module system, which will lead to more modularized, maintainable code. The techniques to take full advantage of object-oriented code, functional programming and the new modularity features in Java 9 form the main subjects of this book. Each chapter will add to the full picture of Java 9 programming starting out with classes and instances and ending with generics and modularity in Java.
Table of Contents (23 chapters)
Java 9 with JShell
Credits
About the Author
Acknowledgement
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Working with functional interfaces and lambda expressions


We had to declare an interface and two classes to make it possible for a method to receive an instance of Testable and execute the test method implemented by each class. Luckily, Java 8 introduced functional interfaces and Java 9 makes it easy for us to supply a compatible lambda expression whenever the code requires a functional interface. In a nutshell, we can write less code to achieve the same goal.

Note

A functional interface is an interface that meets the following condition: it has a single abstract method or a single method requirement. We can create instances of functional interfaces with lambda expressions, method references, or constructor references. We will work with different examples that will allow us to understand lambda expressions, method references, and constructor references and we will see them in action.

The IntPredicate functional interface represents a function with one argument of the int type that returns...