| Java MultiMethod Framework | ||||||||||||||||
| Goal | Informations | |||||||||||||||
|
In Java, method resolution is performed at runtime, by late binding, with
respect to the dynamic type of the target object.
Some object-oriented langages such as CLOS propose, in addition,
late-binding according to dynamic types of all arguments.
This feature is know as multi-polymorphism and usally achived by
multi-methods.
|
|
|||||||||||||||
| Architecture | ||||||||||||||||
|
The Java MultiMethod Framework is based on three sub-packages :
|
||||||||||||||||
| Examples | ||||||||||||||||
|
The example below explicit a simple use of the class MultiMethod.
import fr.umlv.jmmf.reflect.*;
public class Example {
static public String toString(Integer i) {
return Integer.toHexString(i.intValue());
}
static public String toString(Object o) {
return o.toString();
}
public static void main(String[] args)
throws Throwable {
MultiMethod mm=MultiMethod.create(Example.class,"toString",1);
Object o1="hello multi-method";
Object o2=new Integer(3);
System.out.println(mm.invoke(null,new Object[]{o1}));
System.out.println(mm.invoke(null,new Object[]{o2}));
}
}
Others examples can be found here !. |
||||||||||||||||
| Documentation | ||||||||||||||||
|
The documentation of the latest version in available online. |
||||||||||||||||
| Download | ||||||||||||||||
|
The latest JMMF version is v0.8.10, documentation and jar file are available separately :
PS: a vicious bug in netscape 4.7 can't permit to download '.jar' file. To workaround this bug the jar file (jmmf.jar) that contains all classes is renamed to jmmf.zip.
|
||||||||||||||||
| Papers & Slides | ||||||||||||||||
|
Because the JMMF package is a part of my PhD Thesis, The following entries are some research papers and slides.
|
||||||||||||||||
| Rémi Forax 2001 Université de Marne la Vallée | ||||||||||||||||