Before lambdas were added to Java (Chapter 6), anonymous classes were the preferred means of creating small function objects and process objects on the fly, but lambdas are now preferred (Item 42).
We'll get to this, but: Are lambdas much more than syntactic sugar for anonymous classes?