class AppendingClassMethodManager {
    private final List<AppendingMethod> methods = new ArrayList<>();

    public void addAppendingMethod(String name, Class<?> bindingClass, OperatorBase op) {
        methods.add(new AppendingMethod(name, bindingClass, op));
    }

    public AppendingMethod getAppendingClassMethod(Object object, String methodName) {<FILL_FUNCTION_BODY>}

    public OperateData invoke(AppendingMethod method, InstructionSetContext context, ArraySwap list,
        List<String> errorList) throws Exception {
        OperatorBase op = method.operatorBase;
        return op.execute(context, list, errorList);
    }

    public static class AppendingMethod {
        public final String name;

        public final Class<?> bindingClass;

        public final OperatorBase operatorBase;

        public AppendingMethod(String name, Class<?> bindingClass, OperatorBase op) {
            this.name = name;
            this.bindingClass = bindingClass;
            this.operatorBase = op;
        }
    }
}

        for (AppendingMethod method : methods) {
            //object是定义类型的子类
            if (methodName.equals(method.name) && (object.getClass() == method.bindingClass
                || method.bindingClass.isAssignableFrom(object.getClass()))) {
                return method;
            }
        }
        return null;
    
<no_super_class>