動的に実装

ヒアドキュメント使えると、実用的かも。


public static void main(String[] args) {
List list = (List) impl(List.class, "{get: function() {return 1}}");
System.out.println(list.get(0));
}

public static Object impl(Class clazz, String src) {
Context cx = Context.enter();
return Context.jsToJava(cx.evaluateString(cx.initStandardObjects(),
"new " + clazz.getName() + "() " + src, null, 1, null), clazz);
}