Apache Commons logo Commons Functor

Commons Functor: Function Objects for Java

A functor is a function that can be manipulated as an object, or an object representing a single, generic function.

Functors support and encourage a number of powerful programming techniques including:

  • programming in a functional style
  • higher order functions
  • internal iterators
  • reuse and specialization through composition rather than inheritance and overloading
  • generic "callback" or "extension point" APIs
  • generic "filters" or predicate APIs
  • many "behavioral" design patterns, such as Visitor, Strategy, Chain of Responsibility, etc.

See the examples for more information on some of these techniques.

Overview

Commons Functor defines three general types of functors:

predicates
functors that return a boolean value
functions
functors that return an Object value
procedures
functors that don't return anything

The root functor package defines three signatures for each functor type--taking zero, one or two Object arguments.

The remaining packages provide common functor implementations, adapters and utilities.

Releases

There are not releases yet.