RE: メソッドオーバーロードの動的束縛

cf: メソッドオーバーロードの動的束縛とか - しげるメモ
さくっと解決してみた。

import javax.script.*;
public class ScriptingDispatch {
    public static void main(String[] args) throws Exception {
        ScriptingDispatch obj = new ScriptingDispatch();
        Root hoge = new Hoge();
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("kuzha");
        ((Invocable)engine).invokeMethod(obj, "method", hoge);
    }
    
    public void method(Object o) { System.out.println("Object"); }
    public void method(Hoge o) { System.out.println("Hoge"); }
    public void method(Foo o) { System.out.println("Foo"); }
    
    interface Root {}
    static class Hoge implements Root {}
    static class Foo implements Root {}
    static class Bar extends Hoge {}
}
>java -cp ./bin;kuzha.jar;asm-3.1.jar ScriptingDispatch
Hoge

ふははははすみません orz...
けど同じように JRuby とか Jython とか経由で呼び出すとさくっと書けると思いました。思ったので実行してみた感じ。実際さくっと書けたね。
パフォーマンスは最悪だろうけど、というと Pnuts あたり使えば爆速になりそうでちょっと怖かったりします。