Runnable is actually there since Java 7. I use it as a simple way to store callbacks. For instance
myButton.setCallback(this::changeColor);
and inside button:
void setCallback(Runnable callback) {
// store callback locally for later invocation using theCallback.run()
}
ps. sorry for going off-topic!