code: public static Object newInstance(ActivityContext context, BeanRule beanRule, Object[] args, Class<?>[] argTypes) {
          try {
              ProxyFactory proxyFactory = new ProxyFactory();
              proxyFactory.setSuperclass(beanRule.getBeanClass());
              MethodHandler methodHandler = new JavassistDynamicBeanProxy(context, beanRule);
              return proxyFactory.create(argTypes, args, methodHandler);
          } catch (Exception e) {
              throw new ProxyBeanInstantiationException(beanRule, e);
          }
      }
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