public static MethodProxy create(ClassLoader loader, Class c1, String m1, Class c2, String m2) { return new MethodProxy(loader, c1, m1, c2, m2);
public static MethodProxy create(ClassLoader loader, Class c1, final String m1, Class c2, String m2) { FastClass f1 = helper(loader, c1); FastClass f2 = helper(loader, c2); int i1 = f1.getIndex(m1); int i2 = f2.getIndex(m2); if (i1 < 0) { return new MethodProxy(f2, i2) { public Object invoke(Object obj, Object[] args) throws Throwable { throw new IllegalArgumentException("Protected method: " + m1); } }; } else { return new MethodProxy(f1, i1, f2, i2); }
    public static MethodProxy create(ClassLoader loader, Class c1, String m1, Class c2, String m2) {        return new MethodProxy(loader, c1, m1, c2, m2);    }