Dec 17, 2017 JDK functional interfaces design Design gotchas in JDK's functional interfaces Because of a course I prepared, I recently had a closer look at the java.util.function package in JDK 8, and discovered a couple of interesting design choices. A Callable and a Supplier are defined in the same way. But they are not equivalent.