http://plg.uwaterloo.ca/~stevem/MethodThread/
The MethodThread package contains classes that extend the functionality of the Thread class and the Reflection API. In concert, these two extensions allow threads to be created to execute arbitrary methods or constructors, defined for public classes or instances of public class, with a set of arguments. Further, it is possible to get the results of the execution, either return values or exceptions thrown during the computation.
The method search algorithm for matching method specified by name still does not re-implement Java dispatch semantics, although it is as close as it can reasonably get. The choice of method is a simple multiple dispatch mechanism, where the run-time type of the arguments is used to find the most appropriate method. Details of the algorithm can be found in the class documentation (or viewed here). Any ambiguities can still be overcome by specifying the Method or Constructor object itself rather than using the name.