Java 8 lambda Void argument
Use Supplier if it takes nothing, but returns something. Use Consumer if it takes something, but returns nothing. Use Callable if it returns a result and might throw (most akin to Thunk in general CS terms). Use Runnable if it does neither and cannot throw.