The SciJava Ops projects offers a framework for typed operations, or Ops.
Each op implements a particular functional interface, possessing typed inputs or outputs. The system provides the ability to request ops matching particular constraints, including implementing interface, input types and output types.
It is like Java's method overloading, but more powerful, and more extensible.
More documentation coming later.
See also ImageJ Ops, a collection of ops focused on scientific image processing and analysis.