I just learned about “method reference” notation in Java 8 thanks to Intellij IDEA code hints.
Consider the following code:
public class MapMap { Map<String, String> map; public static void map(Object key, Object value) { System.out.println(key + ":" + value); } public void mapmap() { //...see implementations below } }
I knew this:
/* loop */ for (Map.Entry entry: map.entrySet()) { map(entry.getKey(), entry.getValue()); }
could be replaced with this:
/* lambda expression */ map.forEach((key, value) -> map(key, value);
but I did not know about this:
/* method reference */ map.forEach(MapMap::map);
See the full gist here
See here for the official documentation on method references:
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html