code: public static Object newInstance(ActivityContext context, BeanRule beanRule, Object[] args, Class<?>[] argTypes) {
          Enhancer enhancer = new Enhancer();
          enhancer.setClassLoader(context.getEnvironment().getClassLoader());
          enhancer.setSuperclass(beanRule.getBeanClass());
          enhancer.setCallback(new CglibDynamicBeanProxy(context, beanRule));
          return enhancer.create(argTypes, args);
      }
docs: Creates a proxy class of bean and returns an instance of that class.
  
  @param context the activity context
  @param beanRule the bean rule
  @param args the arguments passed to a constructor
  @param argTypes the parameter types for a constructor
  @return a new proxy bean object