Method references
I mentioned earlier that method references are kind of like shortcuts to lambdas. They're a compact and convenient way to point to a method and allow that method to be used anywhere a lambda would be used.
When you create a lambda, you create an anonymous function and supply the method body. When you use a method reference as a lambda, it's actually pointing to a named method that already exists; it already has a body.
You can think of them as transforming a regular method into a functional interface.
The basic syntax looks like this:
Class::method
or, a more concrete example:
String::valueOf
The part preceding the double colon is the target reference and after, the method name. So, in this case, we're targeting the String
class and looking for a method called valueOf
; we're referring to the static
method on String
.
public static String valueOf(Object obj) { ... }
The double colon is called the delimiter. When we use it, we're not invoking the method, just...