please include function callF. static O callFOpt_cached(O f, O... args) ctex { if (f == null) null; if (f instanceof Runnable) { ((Runnable) f).run(); null; } if (f instanceof S) ret callOptMC((S) f, args); Class c = f.getClass(); ArrayList methods; synchronized(callF_cache) { methods = callF_cache.get(c); if (methods == null) methods = callF_makeCache(c); } int n = l(methods); if (n == 0) null; if (n == 1) ret methods.get(0).invoke(f, args); for i to n: { Method m = methods.get(i); if (call_checkArgs(m, args, false)) ret m.invoke(f, args); } null; }