Java Multi-Method Framework
Rémi Forax, Étienne Duris, Gilles Roussel · 2002
In Java, method resolution is done at runtime, by late-binding, with respect to the dynamic type of the target object. Some object-oriented languages such as CLOS propose, in addition, late-binding according to dynamic types of arguments. This feature is known as multi-polymorphism and usually achieved by multi-methods. We propose a pure Java framework that provides multi-methods, without extending the base Java language nor modifying its semantics but intensively using the reflection mechanism of the language. The paper focuses on the algorithms and data structures involved in the method resolution strategy we have implemented in an optional package called Java Multi-Method Framework.